### 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> image,
           absl::optional<UUID> guid)
    : tray_icon_(TrayIcon::Create(guid)) {
  SetImage(isolate, image);
  tray_icon_->AddObserver(this);
}
Tray::~Tray() = default;
gin::Handle<Tray> Tray::New(gin_helper::ErrorThrower thrower,
                            v8::Local<v8::Value> image,
                            absl::optional<UUID> guid,
                            gin::Arguments* args) {
  if (!Browser::Get()->is_ready()) {
    thrower.ThrowError("Cannot create Tray before app is ready");
    return gin::Handle<Tray>();
  }
#if BUILDFLAG(IS_WIN)
  if (!guid.has_value() && args->Length() > 1) {
    thrower.ThrowError("Invalid GUID format");
    return gin::Handle<Tray>();
  }
#endif
  return gin::CreateHandle(thrower.isolate(),
                           new Tray(args->isolate(), image, guid));
}
void Tray::OnClicked(const gfx::Rect& bounds,