I have recently purchased the new HTC One S, and I am starting to get disappointed with Android and ICS. Multitasking only seems to exist for small apps like SMS, mail, and others. Every time I have a big game running - like Shadowgun, for example - and I press the home button or lock the screen, the game stops running. If I then go to the most recent apps and pick the game, it starts over from the beginning, it doesn't continue where I left it. I am used to a HTC HD2 with its old Windows Mobile, and I was always able to leave a game in its position and come back to it later, without any problems. Why isn't Android doing that for me? Is it a behavior only for ICS, or HTC, or is it the general behavior of any android mobile?
The general android behavior is to pause the application when you switch to some other app. It shouldn't cause data loss. In case the app is closed/killed by the OS while in background, it gives the app the option to save data in it's APIs.
If an app is using this proper/recommended way, then it can resume altogether without any data loss, i.e. you can start the game where you left it. But some games may have so much data that it can't be saved easily, that's why you are having issues with multi-tasking.
I haven't tried Shadowgun, so I can't comment on that, but in a game like Plants vs. Zombies it's properly implemented, and your game is properly paused and resumed. When you press Home on the device, it goes to a paused state automatically.
So in the end, it all comes down to App's own mechanics, not on HTC or Android.
I don't have this problem running on a SGSII on ICS. Have you tried pausing the game before leaving it? Also make sure you click the home button only once with a fast click.