### Issue Details

* **Electron Version:** 9.0.0 (beta versions of 9.0.0 too)
* **Operating System:** Windows 10 1903
* **Last Known Working Electron version:** 7.2.4

### Repro steps
1. **require** a native module in a Renderer process (on a page)
2. call libuv function **uv_queue_work** 5 times
3. get **uv_after_work_cb** invoked 5 times
4. reload the page 
5. call libuv function **uv_queue_work** 5 times once more

### Expected Behavior
6. get **uv_after_work_cb** invoked 5 times

### Actual Behavior
6. get **uv_after_work_cb** invoked 1 or 2 times, remaining ones never get invoked by libuv

### To Reproduce
I prepared a sample project with minimal code that demonstrates the problem:
>>> https://github.com/jphw/libuv_problems

Please read the README.MD and check src/libuv_problems_module.cpp sources.

### Additional Information
**app.allowRendererProcessReuse = false;**  works as a workaround for this issue

shell/renderer/electron_renderer_client.cc
const GURL& url,
                                        const std::string& http_method,
                                        bool is_initial_navigation,
                                        bool is_server_redirect) {
  
  
  
  
  return http_method == "GET";
}
void ElectronRendererClient::WorkerScriptReadyForEvaluationOnWorkerThread(
    v8::Local<v8::Context> context) {
  if (base::CommandLine::ForCurrentProcess()->HasSwitch(
          switches::kNodeIntegrationInWorker)) {
    WebWorkerObserver::GetCurrent()->WorkerScriptReadyForEvaluation(context);
  }
}
void ElectronRendererClient::WillDestroyWorkerContextOnWorkerThread(