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