Button (INT0) interrupt freezes interrupts for 1 sec... stop!

Can you change it to use attachInterrupt rather than:

ISR(INT0_vect){

Replace these lines:

  //Setup external INT0 interrupt
  EICRA = (1<<ISC01); //Interrupt on falling edge
  EIMSK = (1<<INT0); //Enable INT0 interrupt

by:

attachInterrupt (0, buttonPress, FALLING);

And replace:

ISR(INT0_vect){

  //When you hit the button, we will need to display the time
  //if(show_the_time == FALSE) 
  show_the_time = TRUE;

}

by:

void buttonPress ()
  {
  show_the_time = TRUE;
  }

See if that does anything.