Code:
If on udpwrite wasn't meant to be used with UDP, then why are you suggesting I use it, in which case is it triggered?

I suggested using it because I noticed it was an event in the source code that might help you track down the issue.

Code:
On sockwrite has been working with udp socket since ever: http://www.zigwap.com/mirc/sockets_udp see the getTime alias, which eventually triggers on sockwrite with $sockerr set to 0. 

That is very odd. As far as I can tell, this event should not trigger for UDP sockets. The on SOCKWRITE event is used with TCP sockets to let you know when you can send more data or to let you know if there is an error. I will have to look into this more closely as it could be related to the issue you are reporting.