Although idle-event is indeed not really good strategy for async send to self.

But I don't see this as issue.

Please note:
<ul><li>"after" events are timer-events and will be executed as one chunk (if the timer was reached, and in case of after 0 it is always the case);
</li><li>this means - you can not insert in-between 0-timer events, unless you don't generate a timer-event also (I don't really see any advantages by generation of 0-timer event in case of async send).
</li><li>events are cumulated with event source handlers (setupProc/checkProc), so the time where events are reached the evaluation phase is undefined;
</li><li>if the event will be appended directly to thread-queue, then all your timer-events (after 0) will be executed hereafter (because those will reach the event-queue first after sourcing via setupProc/checkProc);
</li><li>asynchronous send to self is not the primary usage in thread-module, so I don't think that "much performance being lost"

Just as loud thoughts.