Log SERVER data when running payment_cancel, should help track down the cancellation bug.