I think what we need is to manage our own event loop, so that we never yield control back to the browser until we're done doing all of our own system's deferred work. I was hoping some of the work you (@ide) were doing would help out there. We can follow up later about that and stick with the setTimeout for now.