First see [link|http://z.iwethey.org/forums/render/content/show?contentid=120880|http://z.iwethey.org...?contentid=120880] and test whether you have a nasty IE memory leak with this strategy. What you're doing is similar enough to what I ran into that I'd suspect that you do.
That said, my solution on a similar slow initialization problem in JavaScript was to have a function that would do a piece of the initialization and then if it didn't finish, would set up a timeout where it was called again. The timeout delays didn't have to be long, just present so that the browser would know to do other useful stuff. (You see, JavaScript is multi-threaded except when it isn't...)
The initialization slowed down by perhaps 20%, but the page was useable right away.
However do that IE test first, leaking large pages quickly comes to suck badly when you run out of RAM.
Cheers,
Ben