Push button problems - repeated loop on toggle

Arrch:
It's good practice, but if was certainly the cause of your trouble in this case because the debounce code is intended to run often. What was happening was that after the display sequence, loop() was called again, It wasn't prepared to say it was LOW quite yet because as far as it was concerned, it just switched to ground.

Well shucks, that makes a whole lotta sense. Now that i think of it you're right about the debounce intended to be ran often, most of my other programs are always looking and receiving key presses, where as this one is idle for much longer in between key presses.