Ok, this is something that I have given a great deal of thought to.
The reason we have wait states like that is to encourage player interactivity. Unfortunately, in reality, this kind of thing gets scripted more often than not. It is pretty easy to manage these states by using a priority queue, triggering on the end of the wait state. Thus you can manage what commands will be queued up for execution.
This COULD be implemented server-side, of course, and I have done so on other projects. This is currently in consideration. For now, play around with your client settings, maybe you can find a solution that you are happy with. The client I usually recommend is MUDLET, as it has some of the most robust scripting I have encountered.
– Ornir Elunari