Salve,
Da quello che ho capito quello che vuole fare lei é qualcosa di simile al debounce software di un tasto, in cui se una condizione resta vera per un po allora fai qualcosa.
Se così fosse credo possa essere sufficiente una roba tipo
SE sento la condizione vera
carico una variabile di condizione vera
Carico una variabile col tempo attuale
ESCO dal se
Entro in una while che controlla se il tempo é passato
Nella while metto solo una if dove controllo se non sento la funzione
Nella if scarico la variabile di condizione vera e faccio uscire dalla while.
Così facendo alla fine la condizione rimane vera solo se rimane per tutta la while.
Infine verifico con un if se é vera la condizione e nel caso chiamo una funzione.
Se poi fosse necessario, per evitate di sentire 2 volte una pressione troppo lunga sarebbe sufficiente una while condizione vera vuota, seguita dallo scarico della variabile condizione vera