I'm seeing some pretty fundamental issues here. I suppose if you assume that you'll have total control of everything loaded then some of the assumptions made here may be an ok trade off, but from my experience it's better practice to be more guarded.
Specifically:
1) the window.onload is being directly overwritten without any chaining. The safe way is to first store a reference to whatever was in .onload beforehand and call that in the overwritten onload.
2) the load check uses an interval on a 10ms timer. Chained setTimeouts are much better for performance and 10ms is quite an aggressive default. 50ms gets called 5x fewer and has a imperceptible difference to the user.
3) _async is some big ol' global var with no function scoping at all.