Ah yes sorry you did have webworkers  in your prior post.  This is odd as AFAIK moving execution to a WebWorker will move that execution entirely to a different thread so it can not block the other main one running in browser dealing with GUI etc.
It makes me feel that some part of your code on the main thread is taking too long but from the snippets above it is not immediately obvious to me. You may want to use the Chrome Dev Tools to profile execution to see where most time is spent to check if any CPU execution is lagging things on the main thread:

  
      

      Chrome Developers
  

  
    

Analyze runtime performance - Chrome Developers

  Learn how to evaluate runtime performance in Chrome DevTools.


  

  
    
    
  

  


You should be able to drill down into that performance capture what functions were the cause of the hanging at least. Worth a try!