1. User Clicks Process Button
2. Code loads document requested
3. SendStringToExecute is sent
4. Document Saves and Closes
5. SendStringToExecute completes
So, for some reason, sendStringToExecute doesn't actually happen until your current procedure is finished. A problem in my view. I think there are a couple of ways around this. Here is one solution using a Timer.
Rename frmMain.txt to frmMain.vb and replace the one in the project with this.
Don't know how this will work on a big script though. I am not sure if the IsQuiescent method will catch a script in progress or not. Give it a try.