Maybe I'm doing something wrong, but the way I do it, is calling activity.finish before launching the next activity, and I never had any problems, nor global variables lost.
So if I am in activity "ONE" and want to call activity "TWO" I always do
Activity.finish
StartActivity ("TWO")
If I am In activity "TWO" and want to call Activity "THREE" I do
Activity.finish
StartActivity ("THREE")
If I am in activity Three and want to call Activity one I do
Activity.finish
StartActivity ("ONE")
Etc.
If I want to end the application then I do
Activity.finish
ExitApplication
As only the currently activity is running then it exits correctly.
As I said, maybe this is wrong, but I have a stress tested app that works this way, and it is working very well