If a webhook target returns an error, The Things Stack publishes error events that you can see in the Console. If the webhook target keeps returning errors, the webhook will at some point be disabled.
It’s indeed a good plan to keep the webhook receiver as simple as possible. Just write messages to a (durable) queue and process them later in a separate process. And if you haven’t seen it already, take a look at my post Application / Integration Cookbook, that could save you some work.