This is a really fascinating problem set for distributed computing. I've been involved in Active-Active designs that never fully went live, and some Active-Passive, and I def agree with the criticisms of Active-Passive, and the assertion that you should fail back and forth regularly to ensure that you have a procedure that works, and resources that actually match.
It's easy for N+1 to be N+0.8, and at peak load, that may be essentially worthless.