State variables and millis help.

I like to start with very simple stuff and only make it more complex if possible. So what about this

byte buttonState = false; // global variable

void readButtons() {
  buttonState = digitalRead(enterButtonPin);
}

void activateAlarm(){

  if (buttonState) {
    alarmStartMillis = millis();
    alarmSounding = true;
    Serial.println("timer started");
  }
}

etc etc

If you keep the button pressed strange things will happen and you could extend the code to deal with that - but is that necessary?

...R