I said my system worked for all cases except Swordfish; I tried to record a replay with Xonochrome tonight and it was horribly broken. Many headaches ensued.
Continuing on from the discussion though, I've discovered a few things about Game Maker's order of events that the official documentation doesn't include. A little bit of research found me this: http://www.gmlscripts.com/forums/viewtopic.php?id=138
Now in theory this means that any kind of logging of keyboard events to file should happen after the keyboards have been polled, ie. Step, or End Step.
In practice I managed to come up with this handy example project here: http://www.mediafire.com/?cc5d5naef6heuia
The INI recording is like GMOSSE: 0 does nothing, 1 records inputs and saves to file upon exit, and 2 opens up that file and plays again. It also displays a bunch of variables and *takes a screenshot of each frame for comparison purposes*. There's two rooms, one running at 60 FPS and one at 1 FPS, you'll want to use GM Pro to open up and change the room order otherwise you may be swamped with screenshots.

Sounds great doesn't it? Well, not exactly. I still couldn't get it to work properly in GMOSSE for some reason although in the testing that I did do the behaviour was better than before. Certainly in the 1FPS room the recordings screenshots matched the playback screenshots exactly...once I added an offset in the lines.
I did however learn two new things: GM appears to have two frames of lag for inputs, and the order of each specific key is actually the order they appear in the IDE when you use the UI's keyboard events.
Hopefully a bit of collaboration in this thread and some thorough testing from someone other than just me may result in us getting a definitive system worked out.