Yes, there are ways to work around that and IMO you should always disable any buttons etc until an edit process is complete and meets your validations, a question not only of program flow but of user feedback as well.
I'm currently doing some more tests with other sort of controls, TMemo, TlistBox, whatever. There's not really a pattern yet, but TEdit seems to behave a bit different. Unfortunately the control I'm working on is a descendant of TCustomEdit as well, and I would very much like it to be 'self sufficient' without relying on environment conditions. But I'm rather glad to hear that it works on other platforms (which I currently cannot test myself, but will do so later). And as long as you can document anomalous behaviour you can't do anything about it should be, well, not fine, but sufficient.
As for filing a bug - will do when things become a bit clearer but I doubt there will be much work done anymore on fixing Gtk2 isues (if that's what it is). Btw there are other issues with the order of messages and events, as for example issue 20330 mentioned in TDBEdit concerning LMPaste, LMCut and LMClear. That one is still pending and has been for years.