..that is that. I'd code something to show just that. Is all in the same thread.
At times, I run an AdLib from within a GUIRegisterMsg(), and act in "script time" to free the "GUIRegisterMsg time".
I use the $WM_TIMER when I need to get something done no matter what the user does to the GUI.
If the function called by $WM_TIMER is not fast ( say, under 20 ms. ), then I fork that to another script.
But yes, AdLib means "do it at your leisure ( within "script time" ), but do it" and $WM_TIMER means "I'll stop the world to do it, even if it explodes". ( my non-programmer explication )
Off-Topic: In the future, cars may self drive and also, AutoIt may run GUI stuff in a 2nd thread, ...in the future, maybe, just maybe.