If you need to do something with the data that was sent then just make a new alias. This is what I used to do:
alias send {
if ($sock(blabla)) {
sockwrite -n blabla $1-
if ($window(@debug)) { aline @debug >>> $1- }
}
}
Then you just call /send <data>
This behaviour is very similar as to why /sockwrite won't work directly after /sockopen and why you have to wait for the on SOCKOPEN event. mIRC is a single-threaded application and doesn't begin to process the socket messages until it has finished processing the current script.
I'm not even sure how/why it used to work as you describe.