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
bool has_icon_ = false;
  bool silent_ = false;
  bool has_reply_ = false;
  base::string16 reply_placeholder_;
  base::string16 sound_;
  base::string16 urgency_;
  std::vector<electron::NotificationAction> actions_;
  base::string16 close_button_text_;
  electron::NotificationPresenter* presenter_;
  base::WeakPtr<electron::Notification> notification_;
  DISALLOW_COPY_AND_ASSIGN(Notification);
};
}  
}  
namespace gin {
template <>
struct Converter<electron::api::Notification*> {
  static bool FromV8(v8::Isolate* isolate,
                     v8::Local<v8::Value> val,
                     electron::api::Notification** out) {
    return mate::ConvertFromV8(isolate, val, out);
  }
  static v8::Local<v8::Value> ToV8(v8::Isolate* isolate,
                                   electron::api::Notification* in) {
    return mate::ConvertToV8(isolate, in);
  }
};
}  
#endif