One problematic issue I can see the Pinephone have in regards to this is that there's no unified push service that works for all apps. Google has forced everyone on Android to use their push service and it's terribly restrictive for application development but over the years this has also solved a lot of battery life issues. Apps holding open connections of their own just to see if there are any notifications is fine on desktops but it's a challenge open platforms will need to solve somehow.
I don't think that's the problem. It would not be that hard to have system-wide settings to control which applications can apply for background updates.
My (limited) understanding is that the difficulty resides in hardware support for sleep/low-power and the many different implementations from every hardware vendor. Note that it's also a problem on desktops/laptops (with S3 and related techs) even on Windows using official firmware/drivers.
If you have more detailed reads, please share :)
This would let you run your own push server (or use someone else's), configure it system wide on your device, and all apps would be able to use it automatically with their services.
I won't reveal exactly where this is happening because the software is still in a proof-of-concept stage, but KDE folks are working on a 'unified push service' right now.