But you did still not understand...

if you'll do that, the event will be appended directly into the queue of the thread, so in this case it will be not LAST (as by idle) but FIRST event (because timer events coming later via processing of event-sources).

So again, it cannot be "on the order they were posted", because they are another types of events.
It will be not between your timer-events, but either hereafter (like now) or before (if direct appended to event-queue).
But definitely not between.

For this case "thread::send -async [thread::id]" should be quasi rewritten as "after 0", and I'm definitely against this, because it produces unexpected overhead.

Possibly for my another event-branch (that I wrote in tcl-core-repo), where "after 0" have O(1) by changing of timer-queue, does not generate extra overhead as regards time-compare at all (because creates an immediate timer-event), etc.<br/>
If this will be accepted sometimes...