### Issue Details

* **Electron Version:**
8.4.1 & 9.2.0. **This is actually a regression** the bug seems to not be present in 8.4.0 and 9.1
My speculation is that it has something to do with some fixes done to address crashes due to terminated workers.
* **Operating System:**
Tested mainly on macos, but probably apply to windows as well
* **Last Known Working Electron version:**
8.4.0 and 9.1 (probably also 9.1.1 and or 9.1.2, not sure in which it stopped working)

### Expected Behavior
When a web worker is terminated with `terminate()` its memory should be freed.

### Actual Behavior
RAM is not released

### To Reproduce

Repo to reproduce: https://github.com/oltreseba/electron-web-worker-example

- Every 3 second a worker is terminated an restarted
- Old workers are still visible in devtool memory tab
- Old workers keep using RAM according to macos activity monitor (or equivalent, like task manager on window)

General steps to reproduce:
- Create worker
- Terminate worker
- Notice that it's not clear from memory tab and its memory is not actually freed from the application.

### Screenshots

**In electron 8.4.1:**
<img width="328" alt="Screenshot 2020-08-12 at 22 27 21" src="https://user-images.githubusercontent.com/5563210/90064399-01921e80-dceb-11ea-982b-8d45f784b99c.png">
And: 
<img width="292" alt="Screenshot 2020-08-12 at 22 27 56" src="https://user-images.githubusercontent.com/5563210/90064445-140c5800-dceb-11ea-9eb4-9fc1118607ea.png">

**In electron 8.4.0:**
<img width="358" alt="Screenshot 2020-08-12 at 22 29 03" src="https://user-images.githubusercontent.com/5563210/90064550-3b632500-dceb-11ea-8907-7f11907b07dd.png">
<img width="303" alt="Screenshot 2020-08-12 at 22 29 50" src="https://user-images.githubusercontent.com/5563210/90064627-5afa4d80-dceb-11ea-89ab-b57f4c082b18.png">


### Additional Information
Of course 8.4.0 is less stable and tends to crash when workers are terminated.

### Preflight Checklist

* [x] I have read the [Contributing Guidelines](https://github.com/electron/electron/blob/master/CONTRIBUTING.md) for this project.
* [x] I agree to follow the [Code of Conduct](https://github.com/electron/electron/blob/master/CODE_OF_CONDUCT.md) that this project adheres to.
* [x] I have searched the issue tracker for an issue that matches the one I want to file, without success.


shell/common/node_bindings.cc
node::Environment* env = uv_env();
  
  
  
  if (!env)
    return;
  
  gin_helper::Locker locker(env->isolate());
  v8::HandleScope handle_scope(env->isolate());
  
  v8::Context::Scope context_scope(env->context());
  
  gin_helper::MicrotasksScope microtasks_scope(env->isolate());
  if (browser_env_ != BrowserEnvironment::BROWSER)
    TRACE_EVENT_BEGIN0("devtools.timeline", "FunctionCall");
  
  int r = uv_run(uv_loop_, UV_RUN_NOWAIT);
  if (browser_env_ != BrowserEnvironment::BROWSER)
    TRACE_EVENT_END0("devtools.timeline", "FunctionCall");
  if (r == 0)
    base::RunLoop().QuitWhenIdle();  
  
  uv_sem_post(&embed_sem_);
}
void NodeBindings::WakeupMainThread() {