Thanks, that was helpful. I think I would refactor it to break the direct (cyclic) coupling between listener container and connection factory, but it looks like a useful approach. It doesn't deal with Channel death, only Connections, which makes it slightly distinct from some of the other suggestions.
Do you have any specific scenarios in which you see the Connection dying in practice? Is the connection closed accidentally? By an environment glitch? By the application?