The trick here is to use the fact that messages can be sent to IDs that are not online.
Upon publishing an entry in WordPress, the plugin would connect to its ID. It would then recieve all queued messages, adding IDs that say ’subscribe’ and removing IDs that say ‘unsubscribe’ from its subscription table. Then it would send out a message to all the subscribed IDs with a title and link to the new entry. Finally, it would disconnect from its ID and end.
By not needing a constantly running daemon, a plugin like this would be friendly to conservative web hosts. Subscribers merely need to send a subscribe or unsubscribe message to it, and it will recieve those requests next time an entry is published. Likewise, subscribers who are offline will recieve the message(s) when they reconnect.
It’s like an announcment mailing list, except using Jabber/XMPP.
Now we need is to choose PHP library for dealing with XMPP sessions, then build the plugin to use it.
IMHO, the plugin should connect in “invisible” status, so that the set of subscribers aren’t disturbed by its connection/deconnection popups.