Causing one event only

You need too look for the change in the debounced value of the input.

True. The Serial.print() that used to take time (while the bouncing stopped) is now buffered so the function returns a lot sooner.