Arduino Software Interrupt

Die Aussage zeigt, dass Du millis() nichtmal Ansatzweise verstanden hast.
Die Arbeit mit millis() ist genau dafür da, "noch andere Sachen" im loop zu machen.

Da solltest Du nochmal zurück zu BlinkWithoutDelay und der Nachtwächtererklärung gehen und sie verstehen.

Gruß Tommy