Datman:
if(millis()-t1 > TEMPO) {t1=millis(); digitalWrite(LED,!digitalRead(LED));}
In questo modo comunque trascorso TEMPO+δ, dove δ è un ritardo casuale incontrollabile di pochi (o molti) ms rispetto al momento ideale esatto dello scadere di TEMPO, si riparte dal valore attuale di millis() contando un altro TEMPO+δ.
Se non si vuole continuare ad accumulare l'errore δ ad ogni scadere di TEMPO basta aggiornare t1 dell'esatto valore TEMPO, così la differenza millis()-t1 parte già da un certo valore corrispondente all'ultimo ritardo casuale δ:
if(millis()-t1 >= TEMPO) {t1+=TEMPO; digitalWrite(LED,!digitalRead(LED));}
Qui rappresentato graficamente con due ritardi esagerati segnati in giallo:

Se invece non interessa l'esatta periodicità dei tempi, allora questa finezza si può ignorare.