If ntfy.sh is used (not your selfhosted server), then messages are also forwarded to FCM and APNS (unless the X-Firebase header is set to "no"). For selfhosted servers, Firebase/APNS are not used. Since Firebase is pretty slow in delivering messages instantly, the Android app also has an "instant delivery" option which keeps a JSON stream or WebSocket connection open at all times.
With Firebase, the reported battery consumption is 0% obviously. Without Firebase (i.e. with the instant delivery option) it varies depending on phone and usage. On my phone it is usually around 0-1%. Others that use it to deliver their Matrix chat messages have reported higher numbers up to 12% (though that is rare).
If you "allow background services" for the app, Android will kill it less often. Though some manufacturers are quite aggressive even with that option.
As for who pays the bills: The public server is run in EC2 ($25/month, though it could run on a much smaller instance), and the Apple developer license is $100/year. Other than that, there are no costs. Up until a month ago, i was carrying all the costs. I have recently started accepting donations, and now all the costs are carried by my awesome sponsors (see https://github.com/sponsors/binwiederhier)
More details:
https://ntfy.sh/docs/faq/#why-is-firebase-used
https://ntfy.sh/docs/faq/#how-much-battery-does-the-android-...
https://ntfy.sh/docs/subscribe/phone/#instant-delivery