I'm surprised Pushover is mentioned only once on this thread. I've been using it for years and it's near immediate fast, doesn't waste resources on my devices, supports iOS, multiple receivers/receiver groups and is focused for the purpose. What I really like about it is that you can set a priority for the notification which can mean overriding the sound settings on the receiving device or being silent if not urgent.
For critical notifications there's also a special priority level which will cause notification to retrigger with a specific interval until it's acknowledged by one of the receivers. I'm not sure though if any of the existing Node-RED nodes for Pushover support this feature(?).