Stripe webhooks break in production: duplicates, out-of-order events, failed retries. Here's how to handle them without debugging at 2 AM.