### Preflight Checklist

- [X] I have read the [Contributing Guidelines](https://github.com/electron/electron/blob/main/CONTRIBUTING.md) for this project.
- [X] I agree to follow the [Code of Conduct](https://github.com/electron/electron/blob/main/CODE_OF_CONDUCT.md) that this project adheres to.
- [X] I have searched the [issue tracker](https://www.github.com/electron/electron/issues) for a feature request that matches the one I want to file, without success.

### Electron Version

15.3.0

### What operating system are you using?

macOS

### Operating System Version

macOS Big Sur 11.6

### What arch are you using?

arm64 (including Apple Silicon)

### Last Known Working Electron version

_No response_

### Expected Behavior

Tray Icon would stay in the tray. 

### Actual Behavior

Tray Icon disappears after several seconds.

### Testcase Gist URL

_No response_

### Additional Information

```js
const { app, Tray, nativeImage } = require('electron');
const path = require('path');

let tray = null;

app.whenReady().then(() => {
  const icon = nativeImage.createFromPath(
    path.join(__dirname, './assets/icon.png')
  );
  tray = new Tray('src/assets/icon.png');
  tray.setTitle('Attention App');
});
```
shell/browser/api/electron_api_tray.cc
v8::Local<v8::Value> val,
                     electron::TrayIcon::IconType* out) {
    using IconType = electron::TrayIcon::IconType;
    std::string mode;
    if (ConvertFromV8(isolate, val, &mode)) {
      if (mode == "none") {
        *out = IconType::kNone;
        return true;
      } else if (mode == "info") {
        *out = IconType::kInfo;
        return true;
      } else if (mode == "warning") {
        *out = IconType::kWarning;
        return true;
      } else if (mode == "error") {
        *out = IconType::kError;
        return true;
      } else if (mode == "custom") {
        *out = IconType::kCustom;
        return true;
      }
    }
    return false;
  }
};
}  
namespace electron {
namespace api {
gin::WrapperInfo Tray::kWrapperInfo = {gin::kEmbedderNativeGin};
Tray::Tray(v8::Isolate* isolate,