I think you are reading too much into it. The key point is about which commands have this effect (commands which display a dialog), not about the exact moment at which it happens. You are clearly calling MsgBox, and this is making the thread interruptible.
The dialog is displayed by the standard MessageBox function (or various other functions for other dialogs). Once we call the function, control is out of our hands and in the hands of the OS; therefore, in order to mark the thread as interruptible, it must be done before
the function is called. Consequently, the thread becomes interruptible when you call MsgBox
, but before
the dialog becomes visible. Any actual interruption will happen at whatever time the (hotkey, hotstring, GUI, menu, timer or whatever) message is pulled out of the message queue and dispatched. This is done by the message loop internal to the MessageBox function.
Think of "when the dialog is displayed" as the duration between when the system starts to display the dialog and the moment it stops routing messages to the dialog (after it closes). If the process of displaying the dialog is interrupted
, it will not become visible at the expected time.
As for setting defaults in the auto-execute section,
auto-execute section wrote:If the auto-execute section takes a long time to complete (or never completes), the default values for the above settings will be put into effect after 100 milliseconds. When the auto-execute section finally completes (if ever), the defaults are updated again to be those that were in effect at the end of the auto-execute section.