Waits in nested subs will pass control back to the the calling subs unless they are all resumable with waits.
Sorry, I missed this point from you earlier posts.
Anyway, the same "parsing" tool could operate the switch from regular Sub declaration to a ResumableSub declaration in case of "cascading" subs.
I mean:
Sub SubThree becomes Sub SubThree as ResumableSub and as a last statement you add Return Null
Then Sub SubTwo follows the same route but when it calls SubThree you modify it to become a WaitFor (SubThree)...
This should account for most of the subs.
A bit more complex would be for subs returning a value (e.g. Sub SubX as int); to comply even with those the "parser" should be able to read all the declarations beforehand, then operate the proper substitutions (Returns and Response types).
Complex but doable, I think.
ps: read it just as a rough aloud reasoning..