It is very simple to implement what you want with CallSubPlus.
I did implement the CallSubPlus, however it did not produce the desired result. The reason for this is as far as I can tell is that the main code does not wait for the code executed by the CallSubPlus to complete, but the Main code relies on the code executed by the CallSubPlus to complete. To illustrate that, if there were a Global Sub integer variable that was to be incremented by the code executed by the CallSubPlus until that variable reached (say) 9, then the Main Thread Code would always see that as zero (until all 9 CallSubsPlus had been executed), because the code required to be executed by the CallSubPlus is delayed by 1 second for each iteration. Therefore, the Main code would instead of being executed just 9 times, would (and is) executed a huge number of times. In fact, because the code is more complex that just incrementing an integer, the program never terminates. While this could be solved by having a counter and waiting for that counter to be incremented (1 to 9 times), that is effectively the same as looping for 1000 ms for each iteration which is what I want to avoid because it is not an elegant solution.
While I am quite happy to have the program sleep for 1000 ms, and testing has not shown any adverse results from that, I do not want to do that if the advice from yourselves is that it is problematic under some circumstances to do that. To put it in some context, this is a game of OandX where one option is for the computer to play against itself. The purpose of the sleep is to simulate "thinking" by the computer so that the moves can be seen. Otherwise the game is over as soon as it starts and it does not achieve what I want, which is to see each move after a 1 second delay.