Pull the alive detection out of exec_channel and put it on the client, allowing multiple channels to share one pinger