I tried your timer suggestion, and 1000ms was sufficient on an emulator running 2.2, but 100ms was not. I had already thought of that, and thought the idea was a bad fix rather than a good solid implementation.
But I was able to fix it rather eloquently, though. Instead of activity script falling back to main to do the processing, then finding a way to restart script, I created a third activity, Chain, which has a empty activity_create, and activity_resume has only one statement, activity.finish, then all the processing is done on the way out in activity_pause. This way, activity script comes back up into play naturally, instead of having to find a way to force it or wait for it, and processing resumes naturally. Since activity_resume is called instead of _create when script comes back to focus, I had to call _create from _resume, but it works like a champ. Every time. I'm glad its behind me.
I also added a Run command to compliment Chain, that loads and runs another script without sending an array as Args(), and SavedData() is dimmed back to 0.
Unfortunately, against what you had hinted to in an earlier post, these mods have necessitated modifications as well as additions, so now I have the daunting task of going through my script.bas and comparing it line-by-line with 2.9 script.bas, ensuring the new 2.9 is fully equipped with my changes. I was hoping for a way around this, as to why I mentioned it up front, but the extra work is DEFINITELY worth the outcome.
Andrew, you're the man! Thank you one more time
ps. As soon as I'm done converting script.bas to 2.9, I will start a new thread for B4Script and post the project there.