Don't `per_peer_state` read locks recursively in monitor updating