Count a coupon redemption once per payment that was actually paid
Coupon redemptions were counted wrong (two concurrent redemptions both read the same count, one was lost), and gateway retries picked the wrong Integration Request. Fixed race condition with atomic update and used the correct request for retry.