App level heartbeat to ensure clients get disposed() when they disappear