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?