Hi Thomas,
I had the same thoughts while developing this package, but when i divide it the into parts, it is acceptable(i didnt use reliable because, that word is used differently by some others) by my use cases, let me explain;
If redis is down, no message, big problems
If you say, pub/sub is dropping messages, i have never had problems like that with Redis
If you have unreliable network between redis and your application, this is what TCP over IP, you will have reliable transmission at the end,
If your application/worker is down, possible, you dont have any client to process/notify, no need to get messages from Redis, because even you wont be able send Online/Offline requests to Redis, your clients should re-connect to other running instances of your app/worker.
One thing that can be problematic is, if your app/worker crashes while processing the message. I can also provide solutions to that but too much complexity.
Key point is here, your application/worker should not accept connections(for Online/Offline/Status/StatusChanges requests) if it is not able to connect to redis, and i think it is acceptable.
I will be happy to hear your/other's thoughts too