Hi Brad,
First of all, Any solution would be error-prone because it is CMS and authoring is done by the humans. However, there is a good practice to avoid more human errors.
Content authoring & publishing should never be done by canceling inheritance & in live copy pages. Every application should have a blueprint of pages. And Live copy should be created out of the blueprint. The blueprint works like a source of the pages.
To publish pages, Activation workflow should start from the blueprint and after pages review is done by the peer, the same changes should be rolled out to live copy and publish them.
That is how it should.
I hope this helps.