The default behaviour for self-hosted on Android is to have a foreground service which holds a websocket open, so it does get pushed from the server and doesn't rely on your phone being awake.
https://docs.ntfy.sh/subscribe/phone/#instant-delivery
The upstream approach you describe is only necessary for iOS devices that don't permit apps to do that.