Temporizador a la desconexion

Bien, según lo que entendí (que por cierto leí varias veces tu post), hice unos cambios a tu codigo. Debo aclarar que me base en la forma que tiene tu código y usando técnicas ancestrales de deducción para entender lo que quieres lograr, y con esto llegue a la conclusión de que tu quieres que el solenoide se active justo después que la maquina deja de coser, hace su trabajo y se desactiva y queda así hasta un nuevo ciclo de costura ¿estoy en lo cierto?
aqui esta pruebalo:

//Primero declaro mis variables
const byte sswitch=6;
const byte solenoide=7;
bool estadoSensor, anteriorSensor;
unsigned long tActual, tiempoSolenoide=500;   //Tiempo que durara encendido el solenoide, modificalo segun tus necesidades


void setup(){
   pinMode(sswitch, INPUT); //Sensor
   pinMode(solenoide, OUTPUT); //Solenoide
}

void loop(){
      //Si el sensor esta prendido se activa la solenoide por cierto tiempo y se apaga

      estadoSensor=digitalRead(sswitch);

      if(estadoSensor && !anteriorSensor){
           digitalWrite(solenoide, HIGH);
           tiempoSolenoide=millis();
      }

       anteriorSensor=estadoSensor;

      if(millis()-tActual >=tiempoSolenoide)
            digitalWrite(solenoide, LOW);  
              
      
}

Si no funciona es porque no has sido muy claro explicando tu problema, entonces tendrás que explicar muy bien, la forma que tienes conectado tu sensor, es decir cuando la maquina esta activa el sensor entrega un HIGH o un LOW, como esta configurado como pull-up o como pull-down?, ¿cuando se debe activar el solenoide, cuando hay un high o un low en el sensor? ¿el solenoide debe trabajar cuando la maquina se para o cuando arranca?. etc, etc, etc.
Toda la información es importante recuerda que no estamos contigo viendo tu maquina de coser