No entendí bien lo que quieres realizar pero, a simple vista creo ver algunas fallas:
Este while que hace ?
while (digitalRead(sensorS)==0)
{ } // no hay nada dentro de las llaves por lo que no sirve para nada
Aqui tienes el contador dentro de unas llaves, ¿porque?
while (inicioS<umbralTiempo)
{
if (digitalRead(sensorS)==1)
{
activoLedS=true;
inicioSA=millis();
digitalWrite(avisoSensorS, HIGH);
}
if (activoLedS)
{
if (millis()-inicioSA>tiempoledEncendido)
{
inicioSA=inicioS-millis();
activoLedS=false;
digitalWrite(avisoSensorS,LOW); // apago led1
}
}
{ //ESTA LLAVE
contadorS=contadorS+1;
Serial.print(contadorS);
Serial.println();
} //Y ESTA OTRA ¿QUIEN LAS INVITO?
}
Este While solo te funcionara una vez durante 20 segundos al encender el arduino y hasta que se desborde el millis() volvera a funcionar otros 20 segundos:
while (inicioS<umbralTiempo) //ESTE*
Y como sugerencia para hacer un buen uso de memoria si tu sensor solo entrega 2 estados, usa boolean en lugar de enteros