Hi John,
Yes, I see this behavior too. AIUI, the problem is that if you are blocking the JavaScript event loop, you prevent anything that needs to access the DOM from running. If you run your code on another Native Client thread, it will continue to run even when the JavaScript/DOM thread is blocked. But as soon as you need to communicate with that thread, it will block. I tested adding your "slow" button to the life example (which runs everything on a separate thread), and it had the same problem.
I think the only solution you have here is to make sure that you don't do too much work in one turn of the event loop. Networking shouldn't cause this problem, but perhaps your processing of the network data does? If so, perhaps you can split the work over multiple turns.
-Ben