Not ideal, but fairly easy to hand roll this with the new web push notification support. I support it as a component of a site I'm working on.
The main annoying part is iOS PWA's kill their service workers when off screen even when explicitly told not to via the `waitUntil` command, so you need to have a server running which handles keeping track of the ongoing timeouts and calls the push notification endpoints accordingly.
Code for that is here, https://github.com/JacksonKearl/push-simple. There's a Dockerfile, currently deployed via fly.io.