Hold button to stop countdown. HW or SW? [Solved]

Ok, I got it working using timer1 interrupts to update the 7-segment and this bit of logic running in the main loop:

void loop (){
  if (digitalRead(buttonPin) == 0){ // keep previousMillis
    previousMillis = millis();      // and currentMillis in
    currentMillis = previousMillis; // sync when button is open
  }
  if (digitalRead(buttonPin) == 1){
    currentMillis = millis(); // measure length of button press
  }
  if(currentMillis - previousMillis > interval) { // long press?
    previousMillis = currentMillis; // Don't need this yet.
    allOff();     // clear LEDS
    TIMSK1=0x00;  // stop timer interrupts
  }

  if (alarm == 1){
    delay(1000);
    allOff();
    while ( true ){
      digitalWrite(G,!digitalRead(G));
      delay(200);
    }

  }
}