Impostare una durata di tempo fin quando la condizione è vera

purtroppo il tuo approccio non è quello adatto per risolvere questo genere di problemi
tutto scusabile, intendiamoci, non sono cose gravi
devi solo cambiare l'idea base

devi pensare al microcontrollore come ad un servizio sempre attivo, che effettua una operazione "singola e non bloccante" e ricomincia,
all'inizio sembra sempre tuta una confusione, ma non temere

se te la cavi con l'inglese ti consiglio questo link:
https://forum.arduino.cc/t/using-millis-for-timing-a-beginners-guide/483573

e anche questo, comunque legato al primo:
https://forum.arduino.cc/t/demonstration-code-for-several-things-at-the-same-time/217158

nel pomeriggio dopo il picnic vado avanti con qualcosa di più pratico

buona festa della Repubblica