In this scenario, how does p2p compare to ATProto? The downside of both is that you still need high available servers
I don't think so? In the case of p2p (including radicle) you can run multiple not-so-reliable nodes. Of course that won't work for serving up a web frontend but that's distinct from the git repo itself.
Radicle is local-first, so you can create issues and patches (pull requests) even when offline. It will sync when you're back online.
Also, my understanding is that ATProto is relatively centralized in practice, wheras in radicle every node is sort of equal.