En effet, écrire un code non bloquant est plus difficile que juste changer delay en millis...
Il faut que tu fasses une machine d'états, il y a un tuto sur le forum qui explique comment faire
Tu mets une variable d'état par moteur, chaque moteur autant un état déterminé soit par le temps écoulé (d'où l'utilisation de millis) soit par le endstop.