|Do you know where your variables are?|
"The only difference seemed to be that -x caused the gui to appear during compilation."
-x actually runs the script to determine additional runtime dependancies. So if a GUI is in use then it'll be displayed.
"Is it possible you *thought* you've corrected the "tkkit.dll" typo, but still have it (maybe in your "build" script?)"
Possible, but it's hard to say given they copy and paste different things at different times and refuse to acknowledge the runtime warnings. You'll notice they provide different messed up pp calls at multiple times in the thread. Note that use of -gui isn't recomended if there are problems when running the executable created. It obscures the problem, as can be seen from several posts in this thread.
"But when I run it a few more times, it seems to start quicker after the initial run."
The first run will extract the whole zip file to a temporary area (for example C:\Documents and Settings\user\Local Settings\Temp\par-user), subsequent runs are quicker as they use this cache.
Note that ActiveState currently don't provide a 64bit package for MinGW, so you need to install it yourself.