I think it would make more sense to do the initial random delay on the background threads.
I did consider that. The delay is only intended to be once per message. I could do simultaneous identical delays on each background thread, or I could have a 'delay' thread that then spawns the background threads, instead. For simplicity though I felt I'd just leave the initial delay on the main thread. It does mean there is a slight delay on the main thread compared with Windows when a 'hello' or 'probe matches' message is sent, but compared with the initial version of my patch (which included retransmission delays for every adapter on the main thread) it is much improved.
If however you feel strongly that this should be altered, I can submit an updated version.
Cheers,