I am, however, not 100% certain if it applies in Parallels' own case, not knowing their exact architecture but it is my opinion that a fixed delay value is often not a "one size fits all" approach. Who knows, 5ms might not be enough for me, mind you -- I'm running Macbook Air, one of Apple's slowest CPU of currently-selling Macs. (I wanted a fast netbook size machine -- the Air is the world's fastest sub-3-pound 'netbook' size machines; even the Alienware M11X disqualifies due to >3lbs). If it is at all possible, there should be a way to somehow 'peeks' at the safety of the timing of delivering a keyboard state, rather than using an arbitrary delay. Though the Apple API calls might not allow that low level access...
Oh, and throwing out some more ideas into the open (Parallels 7 stuff?):
--> Parallels could also modify their software to scan their preconfigured shortcuts whether a specific modifier key is used in any assigned shortcut. If it is used in none of them, it could automatically deliver the specific modifier key immediately (like video game compatible mode) because it would know there is no interference. This is probably too complicated a change for too little user benefit.
--> If a modifier key tapped, then it switches to immediate sync until another key is pressed. That way, tapping Option followed by pressing it down in less than 1 second later, would behave normally for copying shortcuts and copy & paste behaviour. People will still be complaining it's semi-buggy behaviour, but it would become a lesser evil of "Weird, why do I have to tap ALT key first to copy shortcuts in Windows Explorer?" versus "Damn, why can't I copy shortcuts by drag and drop??!?!?" ... People will naturally instinctively simply keep repeat-tapping a non-working key until the key works, so you simply take advantage of that behaviour because the behaviour is quite obvious (tap, tap, tap). You could even pop up a message (even in that status bar, in the empty space to the right of the onscreen power button at bottom-right -- a useful unused blank area in Parallels that could be used for optional non-obtrusive real-time status or tip messages) when you detect a user tapping a modifier key 5 times, explaining the behaviour and suggesting the video game mode -- that might reduce tech support inquiries too. For many things that are not critical issues, 1 tech support inquiry means 10 or 50 people are privately complaining about it, but not enough to try to get technical support from Parallels. Preventing 5% of these users from switching to Fusion, might make this kind of change worth it.
--> Also, if some keys are delivered synchronously (entire keyboard) and some keys are delivered asynchronously (shift, ctrl, alt, etc), that can be a bad situation when you're mixing synchronous and asynchronous events. Sometimes a synchronous keypress delivery that happens after an asynchronous delivery, means events now gets delivered 'out-of-order' (i.e. capitalizing the 2nd letter instead of 1st letter when delivering a shift key). Therefore, in certain situations, it then sometimes becomes necessary to make keyboard delivery 100% asynchronous -- i.e. key events should get put into a queue. Default behavour would be to empty the asynchronous queue immediately (to emulate synchronous behaviour) upon every event that adds an event to the asynchronous queue. Then whenever needed, delay the assynchronous queue whenever we hit a situation warranting a slight delay. This would cover some, but not all, situations that cause user frustration. I think Parallels might have done something similiar, or a clever workaround to multiplex asynchronous and synchronous keyup/keydown events, and that they were hitting limits.
--> Parallels could even distinguish between left modifier keys and right modifier keys, by allowing one set to behave immediately like game mode and the other set to behave like today. This might be difficult to make user friendly, so probably not feasible. (You can simply leave that to KeyRemap4Macbook users; that utility is a great tool!)
I realize due to architectural issues, if anything is done, it is probably "Parallels 7" stuff, but it's certainly stuff I would pay an upgrade fee for; so it's a matter of if it's worth the "1 or 2 or 3 days of extra work" with "enough sales to warrant the work?" or "Do I have a developer with enough free time, or do I want to give the summer student something to do?" type of work -- but anyway, I disgress.
[Note: I accidentally registered a separate account for forums. This mdrejhon3 account contains my paid Parallels support. I couldn't fix my username to mdrejhon even after renaming the original mdrejhon to mdrejhon2]