A USB keyboard sends the current state of all keys (ignoring the 6KRO limitation, it's not relevant to this) in each packet it sends to the host.
So the host can get a packet with no keys pressed, and the next can have two (or more) pressed.
Then, yes, it's the OS doing the key repeat. I don't think it's part of the HID spec, so I guess there's no real documentation on how it should behave. Clearly though, the intention is to act like a PS/2 keyboard, and repeat the last key pressed.
I'd call it a bug, however minor and irrelevant. The OS has already made a (completely arbitrary) choice of which key to present first, so that choice should also be applied to the key repeat. (After all, PS/2 keyboards make that choice internally, and stick with it for the repeat).
Teensy doesn't do anything - it's all down to the software. My converter has an output queue, mainly to support playing back macros, which means that it will only output one change at a time (except for modifiers, it can change all of them at once in macros). Anyway, different USB keyboards may behave differently in this regard.