I find red flags when author mentions "manual fix" as something bad. It is not.
Manual fix is bad if you lean on that as soon as problem arises but in any real payment procrssing capacity, having manual fix as the last line of defense is immmensely acceptable approach. It's normal to have weekly manual reconciliation for transactions flagged as outstanding.
And as you said, payment does not works well in distributed system, unless you can guarantee idempotency through the transactions, and this is quite the rabbit hole.
And even if you manage to solve the idempotency problem, you still needs to have the appropriate response to that. Do not rollback a transaction, do not resolve payment back, you should always roll forward, and if double charge happened, there should be company policy to solve that, either through SLA's and TnC.
Lastly, dont forget to consider local law in the process.