Came at this from the other forum... sooo.... go check that one!
In brief, my idea was to not just ignore command for the entire wait_state period, but to queue them up and show you the list of pending commands (and their time-to-fire as it were).
Commands that don't deal with the game world as actions (score, ansi, tell, etc...) would be executed immediately (perhaps -1 being the trigger for that). Now that I think about it, you could tie some of these into the event system as well, in case you wanted the command to run as a callback, but still impose the limitation on the player's actions.
IE: cast 'cause disease' smurf
could print a message, but automatically be shoved WAIT_STATE/2 ticks onto the queue with a WAIT_STATE of the original WS/2+1 (half the delay is in casting, half in recovery?)
I guess that would mean you'd have a startable_time, before which commands don't run but stay queued (with lower cost commands being able to run before them), and a wait_state timer as well... anyways, check the other posting too