The current ClientSideWindowhandler works perfectly fine from a technology perspective, but causes some flickering due to rendering the intermediate site. This effect really gets nasty if the target site takes a while to load.
While showing our code to Dan Allen last week, he had the idea to 'show a screenshot of the old page while the real page loads'.
After thinking about it I realized that we can do something very similar with html5. Instead of showing a screenshot I now decorate all <a> with an onclick where I store the whole <body> dom + CSS etc in the html5 localStorage under the window.name key (unique for each window). On the intermediate page, I read the DOM from the previous page from the localStorage (clean it after that) and set it into the <body> +CSS of the intermediate page. This way we show the exact same html on the intermediate page.
I've tested the code with a real project with tons of AJAX, CSS, etc with FireFox 8.0, 5.0 and IE-7 and the flickering is really gone.