This is a regression from 4.x as far as I can tell.

Steps:
* `git clone https://github.com/bpasero/electron-crashreporter`
* `yarn`
* open `constants.js` and configure:
  * `enableCrashReporter: false`
  * `crashMain` (or renderer, or child process): `true`
  * `tmpDir`: some location that exists
* `yarn start`

=> 🐛 the process that crashes goes to 100% CPU and does not terminate. My feeling is that this is a regression from adopting crashpad for Windows.

This is a blocker for shipping E6 for VSCode.

//cc @deepak1556 
shell/common/crash_reporter/crash_reporter_win.cc
#include "shell/common/crash_reporter/crash_reporter_win.h"
#include <memory>
#include <vector>
#include "base/environment.h"
#include "base/memory/singleton.h"
#include "base/path_service.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "electron/shell/common/api/api.mojom.h"
#include "shell/browser/ui/inspectable_web_contents_impl.h"
#include "shell/common/atom_constants.h"
#include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
#include "third_party/crashpad/crashpad/client/crashpad_client.h"
#include "third_party/crashpad/crashpad/client/crashpad_info.h"
#if defined(_WIN64)
#include "gin/public/debug.h"
#endif
namespace {
#if defined(_WIN64)
int CrashForException(EXCEPTION_POINTERS* info) {
  auto* reporter = crash_reporter::CrashReporterWin::GetInstance();
  if (reporter->IsInitialized())
    reporter->GetCrashpadClient().DumpAndCrash(info);
  return EXCEPTION_CONTINUE_SEARCH;
}
#endif
}  
namespace crash_reporter {
CrashReporterWin::CrashReporterWin() {}