Attempt to clean up peer connections better at shutdown and fix crashes at shutdown by preventing new async tasks from starting after the node starts destructing, and forcibly canceling the read_loop at the beginning of shutdown