The TIME_WAIT issue has been reported many times over the years, across different versions of mIRC. There have been many changes to the socket routines in that time. TIME_WAIT prevents binding to a port for a few minutes after it has been closed. This is by design in Winsock and is there for a reason. It applies to all applications. In some cases, such as the use of SO_REUSEADDR, you may be able to get around it.

In current versions of mIRC, /socklisten should fail only if bind() fails. So far, when testing under XP, I have been unable to make /socklisten fail, however I am sure that there will be situations where it will fail, since there may be contexts in which Winsock will decide a bind is not allowed.

That said, if you can describe a step by step method of reproducing the issue, I will try it out.