> "I watch people poll APIs or create convoluted connections, and I cry a little on the inside."
If the action being sent by the webhook is really important, there seems to be no way around doing it somewhat like this: Write a polling (or hanging-get) system, but use webhooks as an unreliable but lower-latency push mechanism.
In this setup, webhooks give you low-latency updates (when they work), and polling ensures completeness.