No, didn't try, would have to rig up something first. Mostly interested in the debounce technique you use - keeping the last 8 reads in a byte, and the update routines for it.
I just had to think immediately on the many "my buttons don't work!" threads where the code is filled with long delay() statements and the like...
GoForSmoke:
OTOH what if you do and hang things up to where the button read timer thinks that it hasn't been 500us since last read? The button would be unresponsive if the delay caused by overloading the serial output buffer fell in the 0 to 499 part or the 500 to 65535 part.
The chance of this happening is quite small (<1% of the time it's in that range) so likely the next try it'll be fine.