Centralina presepe con bottone

se non sbaglio ti basta spostare vecchio_val= val dentro all'if

  if ((val == HIGH) && (vecchio_val == LOW)) {
    stato = 1 - stato;
    delay(15);                // attesa di 15 millisecondi
    vecchio_val = val;            // memorizza il valore precedente di val  
 }

e poi in fondo

    if ( curr == 4 ) {
      stato = 0;
      vecchio_val=LOW;
    }

in questo modo anche se premi non succede nulla fino alla fine del ciclo
al contrario se vuoi che una nuova pressione del pulsante resetti immediatamente tutto...
aggiungi un else

 if ((val == HIGH) && (vecchio_val == LOW)) {
    stato = 1 - stato;
    delay(15);                // attesa di 15 millisecondi
    vecchio_val = val;            // memorizza il valore precedente di val
  }else if ((val == HIGH) && (vecchio_val == HIGH)) {
     stato=0;
     vecchio_val=LOW
     curr=0;
  }