Comportamiento errático en Arduino

Eso ocurre porque tu código no tiene debouce y tu pulsador esta rebotando.
Por eso se va a FAIL.
debes agregar una rutina de debounce.

Busca arduino debounce