Überlaufsicheren Timer - etwas alle x Sekunden machen

Ich hatte mich jetzt auch bemüht, wenn auch nicht so elegant wie von my_xy_projekt

bool alarm = false;
unsigned long millisMerker;
unsigned long beepMillisMerker;
unsigned long beepInterval=1000;
unsigned long dauerBisRepeat=20000;
unsigned long alarmDauer=10000;

void setup() {
  Serial.begin(115200);
  Serial.println("Start");
}

void loop() {
  if (millis() - millisMerker > dauerBisRepeat && !alarm) {
    alarm = true; Serial.println("Alarm!");
    millisMerker = millis();
  }
  if (millis() - millisMerker > alarmDauer && alarm) {
    alarm = false; Serial.println("Alarm abgelaufen!");
    millisMerker = millis();
  }
  if (millis() - beepMillisMerker > beepInterval && alarm){
    Serial.println("Beep   ");
    beepMillisMerker = millis();
  }
}