Tweak the cancel/refund logic
Try cancelling first, it's the only way to stop a charge that hasn't settled
Do some sketchy stuff with the status code mapping, we're busting DI's rivets,
we'll have to redesign the way data and state are handled to be more
appropriate for workflows other than normal payment.