The issue is that webhooks are completely asynchronous.
They aren't, though. The data updates go through a different tier that makes them asynchronous. The HTTP request itself is synchronous. Add a timeout and see.