unless there's some way of testing whether a key's been pressed in the last X milliseconds, then I could act only when it hasn't been, although there'd be a delay
I think that'll be your winner. It'll be more of the timer method mentioned above rather than the flag method.
I'm surprised that the MacOS treats keypresses like this; could it be a feature of Tkinter for Macs? I'm curious enough that I'll post it on the Tkinter listserv and see what the pros know.
Jeff