Hi Tom,
I am not convinced that your problem relates to making ThreadSuspend work or not. That should not be relevant here I think Personally I just think it's good practice to have ThreadSuspend do this cleanup of session when you have sensitive information, to make sure that when user does go to another web page, he is not able to click the browser's back button and have everything intact like the way it was when he left. For sensitive information, that can be disastrous.
I tested the ThreadSuspend event firing in VS2008 dev server on 6.3.11 (currently same as 6.3.10), and it does fire in all refreshes and going to another web page, but not on browser close within the dev environment, but that is probably something related to the dev environment, as when deplolyed to server and logging to a text file, it does fire on browser close.
Please let us know how this change in caching turns out in relation to your session conflicts.
Palli