In the debate about tech vs non-tech, in general, I think both have advantages, I am learning how to code to get a better understanding of it, BUT not to check me dev teams code.
The reasons you give for having a tech PM are reasons I personally cannot get behind. It sounds like you advocate to use technical acumen/experience for finger pointing and being a hero. Both not good practices in my book. Furthermore you describe that a dev team can “confuse” their PM, which yes, it is true. Why would they though? This sounds like a situation that lacks the trust a great team needs to be great.
It does not matter which individual is responsible, because the whole team is responsible.
I can only speak from my personal experience, I have had close and trustful relationships with my dev teams and they’d happily explain more complex technical things to me, they’d flag problems that could be coming up in a sprint and explain why they might not finish something and together we would try to find a way to make things happen. This never required me to be technical. I just had to listen and create a safe environment and let my team partake in my decision process.
So long story short, if something goes wrong, I don’t need to know the details and the one person who “screwed up”, I need to know I can trust my team and they will do everything they can to fix it. Together.