You have this comment in your code:
// in theory, it's possible to unsubscribe a subscriber that's still alive, if they are unreachable for a short time,
// but regardless, application level logic is always required to ensure the subscription remains alive anyway.
How exactly the application logic is expected to ensure that the subscription remains alive? Should we resubscribe every minute if there are no incoming events? Should we detect missed events, implement a storage for them and a way to re-request them?