I finally tracked down what was happening here (and why it was intermittent). It turns out that calling "setTimeout(func, delay)" on IE doesn't actually set a timeout - it must be called as "window.setTimeout(func, delay)" to actually introduce the delay. The unqualified call works on other browsers, just not IE.
I also had to bump up the call_init delay to 500 milliseconds on Windows to get it to work reliably (200 ms seemed to be enough on the Mac OS browsers). This could be a consequence of running Windows on Parallels, but I haven't seen systemic performance issues on Parallels before so I suspect it's just the Windows JavaScript implementation. If anyone wants to run some tests with 200 ms on a fully native Windows installation, we could revert that part of the fix.