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