A lot of times people put an executeActions() in the middle of their scripts and wonder why half of their script never processes or something just plain doesn't work. The big issue is that the script that contains the executeActions may be part of a chain of script functions. Thus what Lyndel is saying is defer your action list with scheduleAfter() such that all of your scripts process properly. In short executing actions while a script is running causes the script to bomb out and if memory serves may also bomb your actions. You can sometimes avoid a scheduleAfter() if your executeActions() is the last line of script to be executed during the current process.
You can see a similar issue with GUI.updateScreen(). If you change visibility on a widget or use GetImage() on a widget. You won't see the results until the script fully finishes. Sometimes this never occurs and sometimes it occurs well after the button push or event trigger. If you place a GUI.updateScreen() just after the 'change event' it executes immediately on receipt of the GUI.updateScreen() method.
You can hide almost anything until you have to put the drywall up!