There was no need to have a timer do the key group switching routine. Not only would that have to be syncronized to the main loop somehow (or run very slowly),
it's also quite an overhead to keep track of.
Just switching to the next key group after we're done scanning the current one, syncronously, works far better (and faster!).
Debouncing, the way it was done may have been appropriate for human input, but is wholly inadequate for the sequential scanning of the host keyboard IC.
It is however neccessary to provide something like debounce, because the teensy and host IC aren't syncronized.