### Preflight Checklist
<!-- Please ensure you've completed the following steps by replacing [ ] with [x]-->

* [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:**
  * v8.3.1
* **Operating System:**
  * macOS 10.14.6
* **Last Known Working Electron version:**
  * N/A

### Expected Behavior
I have a simple electron app that generates a notification when a button is clicked. Before the new notification is generated, `close()` is called on the last notification. I would expect that each time the button is clicked, the existing notification closes and a new one pops up.

### Actual Behavior
When the button is clicked a new notification is generated, but the old notification does not close. It is important to note that I am logging in the `onclose` event handler for all notifications, and this log shows that all notifications are being closed successfully even though they remain in the Mac Notification Center. I also have logs in the `onerror` event handler for each notification, and these logs are never getting printed, so no errors are occurring.

### To Reproduce
Using the sample app provided in the fiddle link below, click on the 'Generate Notification' button ~20 times. Do some clicks back to back, and spread out some clicks by a few seconds. Check the Mac Notification Center and you will see that most of the notifications are still there, even though only the most recent notification should be there. There are rare occasions where the close does work, but it is still unknown how to reproduce this result consistently. Check the renderer logs as well to see that the `onclose` function was triggered for each notification, even though they are still in the Notification Center.

**Electron Fiddle Link**: https://gist.github.com/fd16a663434667d2096cd31ec7f2662f

### Additional Information
This problem is only seen when running an electron app on Mac. If you run the exact renderer.js and index.html files from the fiddle code in a real chrome web browser, it works correctly (old notifications always clear when new ones come in).
I have confirmed that `nodeIntegration` and the notification option `requireInteraction` have no effect on this regardless of if their values are true or false.
shell/browser/notifications/notification_presenter.cc
#include "shell/browser/notifications/notification_presenter.h"
#include <algorithm>
#include "shell/browser/notifications/notification.h"
namespace electron {
NotificationPresenter::NotificationPresenter() = default;