I'm a C++ coder, but never really looked into emulator. I noticed that when you send tells and someones zoning it says "You tell Soandso, 'Soandso is not available at this time'." Something to those lines, anyway here's my intake on how to fix this.
A packet is sent to the server on ZoneTransfer requests, as well as another one on EnterZone. So my fix would be when you send the ZoneTransfer packet, then you are flagged as zoning and then once you send the EnterZone packet you are flagged as no longer zoning. Every time someone sends a tell there needs to be a flag check for if they are zoning or not, if they are you get the [queued] message along with your tell.
I don't know much about EQEmulators coding structure, but this was an idea I had and I assume it would work. I would be more than happy to write out a code (assuming it will work) and submit that if the developers are too busy or too lazy(

) to write it out themselves but let me know what you think or if you're working on another solution before I bother myself with this.