Ich habe mir das nicht alles durchgelesen, ist mir zuviel, aber ich schreibe trotzdem mal was dazu.
Allerdings verstehe ich immer noch nicht so ganz, wie das möglich ist, wie sich ein asynchroner Task quasi genau zwischen die Ausführung des anderen Tasks "mogeln" kann?
Das kann dir immer und überall passieren. Hier vermute ich, deine Seite enthällt keine extra zu ladenden Elemente, wie z.B. Bilder. Das heißt, wenn das document fertig geparst ist ist auch alles geladen. Der Browser stellt beide events in die Queue. Wenn dein document.ready-Eventhandler abgearbeitet wird und ein Timeout mit 0 ms startet, feuert dieses Timeoutevent zwar sofort, da der Browser aber schon vorher sein window.load-Event gefeuert hat und dieses schon in der Queue steht, wird dein Eventhandler für den Timeout erst nach window.onload abgearbeitet.
Oder anders gesagt, wenn das ja (offensichtlich) möglich ist, dann kann das ja zumindest theoretisch immer und überall passieren. Denn letztlich hat man ja keine Kontrolle darüber, wann bspw. irgendein Event-Handler zuschlägt oder nicht.
Ja, das ist alles asynchron, aber es dürfte dich auch nicht interessieren, (workerthreads mal außen vor gelassen)da nichts parallel abgearbeitet wird und jeder Eventhandler vollständig abgearbeitet wird ehe der nächste gestartet wird. Du bist also immer konsistent, es sei denn du selbst hälst deine Daten nicht konsistent.
Besorgst du dir hier Daten, die du an anderer Stelle benötigst? Dann ist das der Fehler. Besorge dir deine Daten dort, wo du sie brauchst, sonst bist du dazu gezwungen sie immer aktuell zu halten.