Modifichi il loop così:
void loop() {
unsigned long uscita_programmata = millis() + 3000; //3 secondi
boolean pressione_continua = true;
do {
if (digitalRead(pulsante) == HIGH) { //oppure LOW, dipende dalla logica di funzionamento del tuo pulsante
pressione_continua = false;
break;
}
} while (millis() <= uscita_programmata);
if (pressione_continua == true) {
// ....sensore premuto per tutto l'intervallo
} else {{
// ....dito staccato prima del tempo
}
}