ce serait plus modulable avec
const unsigned long attente1 = 10ul * 60ul * 1000ul; // 10 minutes en ms
const unsigned long attente2 = 30ul * 1000ul; // 30 secondes en ms
...
if (millis() - tempsON1 > attente1) state1 = false;
if (millis() - tempsON2 > attente2) state2 = false;
on ne câble pas en dur dans le code que attente1 est forcément en minutes de cette façon