This is pretty much the operative line of the post. Rather than invert my whole development flow, I just use a UI like Magit which makes patch commits trivial.
(and 'git push --force' to 'git yolo', then later to 'gpf', but don't tell anyone)