This is a problem Android, which is also Linux-based, has already solved. You can wake up a process (on a power efficient core, if available) without waking up the screen.
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.
> 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
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.
> 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.
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.
I wonder if running Mozilla's autopush[1] and making web push a standard across apps would help solve this?
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.