Uso correcto de display y LCD (novato en apuros)

Parece un trabajo escolar. Casi que lo he leído antes.

Bueno mas allá de eso, te recomiendo que no uses delay porque su uso detiene el programa y por ende, la reacción de esa opción que planteas de presionar antes de que se cumplan los 5 segundos.
Veamos una parte del código

 if(inicio == 1) {  
  lcd.blink();
  digitalWrite (ROJO, HIGH);
  digitalWrite (buzzer, HIGH);
  lcd.print("ROJO ENCENDIDO");
  delay(5000);
  digitalWrite (ROJO, LOW);
  digitalWrite (buzzer, LOW);
  lcd.clear();
  lcd.noBlink();
  delay(1000);  
 }

si se cumple que inicio = 1 entonces pones en high led ROJO y buzzer, pero esperas 5 segundos sin hacer nada y luego apagas LED ROJO y buzzer y borras LCD y otro segundo mas sin hacer nada.
Total 6 segundos.

Dime como vas a reaccionar a una pulsación para que se cumpla lo que pide el enunciado?