NT 5.34 - I'm using self.senderror method to send a server busy message. The message gets sent but then the server never recovers. If I then close the server window, the server exe is still running without a window. 
 
 Here is what I have after the  loc:RequestData :=: p_RequestData line
          If (MaxThreads > 0 AND Threadcnt >= MaxThreads) OR g:NoLogin
              self.senderror(500,'Server Busy','Server Busy, try again shortly')
              Return
          End 
I included the g:nologin as a test trigger.
I haven't dug into the code too deeply yet, but looking at netweb.clw, the SendError procedure starts with a self._wait() but doesn't end with a self._release() =- unless maybe there is one somewhere else that matches up later.
Chris