I have my own selfhosted https://ntfy.sh instance that I use as my UnifiedPush provider ( https://unifiedpush.org/ ), and to me it feels near instant. But I don't have any knowledge about how good this scales or fits your needs.
I was thinking one need to use Google or Apple services to be able to use pushes, how it can work on self hosted? Disclaimer: not doing any development, have very blurry understanding on firebase
The whole point of unifiedpush is, that earlier when people did not want to use Google services in their application, they all needed to listen/poll on their own to some endpoint from the Application backend, which can be quite battery draining when you have multiple apps that do this. With ntfy you have only one app that listens/polls for these and can efficiently send them to the apps which want these notifications, exactly like Google Firebase notifications