Libnotify supports a timeout parameter which allows developers to control for how long the notification will stay. Some DEs has also implemented options to create persistent notification if the value is -1 for this parameter. Which is particularly helpful in GNOME since they removed System Tray altogether. Developers can create persistent notification instead of Tray Icon if the timeout is supported.

Please add this.
shell/browser/api/atom_api_notification.h
void Show();
  void Close();
  
  base::string16 GetTitle() const;
  base::string16 GetSubtitle() const;
  base::string16 GetBody() const;
  bool GetSilent() const;
  bool GetHasReply() const;
  base::string16 GetReplyPlaceholder() const;
  base::string16 GetUrgency() const;
  base::string16 GetSound() const;
  std::vector<electron::NotificationAction> GetActions() const;
  base::string16 GetCloseButtonText() const;
  
  void SetTitle(const base::string16& new_title);
  void SetSubtitle(const base::string16& new_subtitle);
  void SetBody(const base::string16& new_body);
  void SetSilent(bool new_silent);
  void SetHasReply(bool new_has_reply);
  void SetUrgency(const base::string16& new_urgency);
  void SetReplyPlaceholder(const base::string16& new_reply_placeholder);
  void SetSound(const base::string16& sound);
  void SetActions(const std::vector<electron::NotificationAction>& actions);
  void SetCloseButtonText(const base::string16& text);
 private:
  base::string16 title_;
  base::string16 subtitle_;
  base::string16 body_;
  gfx::Image icon_;
  base::string16 icon_path_;