A potential solution here would be for the client listener, if it receives a "Connection reset by peer" IOException, to try to fail over all listeners connected to that node.
The first tricky aspect is how to make sure that if you have N connected listeners, only one of them fails over the connected listeners, and hence avoid all connected listeners trying to failover all of them. A simple solution here would be for each listener to try to failover itself.
Even more tricky is how to deal with the situation when failover fails. E.g. imagine you have only one server and connectivity drops. The connect is reset and the failover fails since there's no other servers. What does the listener do about it? One thing it could do is failover itself periodically until it works, but this is not ideal. Another option would be to avoid any failover until the client sends an operation and gets a connection. The latter option has a bigger chance of missing events but we have the state receiving option for those who must receive state.