### 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.

### Issue Details

* **Electron Version:**
  * 10.1.3
* **Operating System:**
  * Windows
* **Last Known Working Electron version:**
  * 8

### Expected Behavior
CORS preflight request should work normally

### Actual Behavior
The console logs net::ERR_FAILED and the request fails

### To Reproduce
We have a company proxy that seems to interfere for certain domains (requiring auth).
This issue only happens when attaching any kind of webRequest listener like onBeforeSendHeaders or onBeforeRequest. When the listener is attached the request fails with net::ERR_FAILED in the devtools console. The response headers (logged via webRequest listener) of the request will look like:
"statusLine":"HTTP/1.1 407 Proxy Authentication Required",
	"statusCode":407,
	"responseHeaders":{
		"Connection":["close"],
		"Content-Length":["827"],
		"Proxy-Authenticate": ["NEGOTIATE", "NTLM", "BASIC realm=\"Auth_Seq_NTLM_to_ldap\""],
		"Proxy-Connection":["close"]
	},

This happens for any kind of cors request. i.e.:
fetch("some url", {method: "GET", mode: "cors", headers: {"Content-Type": "application/json"}});

I found this bug report: https://github.com/electron/electron/issues/22242 Maybe it is related?
In the pull request I can see that net::ERR_FAILED responses have been added for cors preflight:
https://github.com/electron/electron/pull/22407/commits/1f59f57908f5f6fae1845209e85300a01a1f264a
shell/browser/net/proxying_url_loader_factory.cc
network::ResourceRequest request = original_request;
  if (ShouldIgnoreConnectionsLimit(request)) {
    request.priority = net::RequestPriority::MAXIMUM_PRIORITY;
    request.load_flags |= net::LOAD_IGNORE_LIMITS;
  }
  
  auto it = intercepted_handlers_.find(request.url.scheme());
  if (it != intercepted_handlers_.end()) {
    mojo::PendingRemote<network::mojom::URLLoaderFactory> loader_remote;
    this->Clone(loader_remote.InitWithNewPipeAndPassReceiver());
    
    it->second.second.Run(
        request, base::BindOnce(&ElectronURLLoaderFactory::StartLoading,
                                std::move(loader), request_id, options, request,
                                std::move(client), traffic_annotation,
                                std::move(loader_remote), it->second.first));
    return;
  }
  
  
  
  
  if (IsForServiceWorkerScript() && request.url.SchemeIsFile()) {
    asar::CreateAsarURLLoader(
        request, std::move(loader), std::move(client),
        base::MakeRefCounted<net::HttpResponseHeaders>(""));
    return;
  }
  if (!web_request_api()->HasListener()) {