Wait till muti threading hits you :)
I've had plenty of experience with this in the Java
environment so I always try to do things with a very OO mindset.
So when I set about recently to develop an AI for a multi-
player game, I started using Anonymous Pipes to help me.
To emulate multi-threading I have to have my AI module as a
standalone app which is spawned by my main game app.
The beauty of this is that the movement arbiter in the game doesn't have a timer, doesn't sleep or anything so primitive :)
Using the pipes and the API call WaitForMultipleObjects, my arbiter thread is literally idle. He doesn't wake up ever n milliseconds like he would if using the Sleep API. He isn't in a fast loop eating up my processor time doing nothing... he is simply and utterly suspended.
To wake him up, one of the AI agents fires an event (or shuts down) and bank, the arbiter is awake and running again...
So although I can't argue with any of the advice you are giving poor git, I suspect that once multi-threading becomes easy for the masses (ala VB7), alot of your existing games will be able to be improved significantly...
Off my soap box now :)
Cheers