Yeah this is doable without breaking your flow. For the exception part, the easiest way is to handle that specific function node differently so it doesn’t bubble the error up to the global handler, either catch the error inside that node or return something like a custom flag (e.g. ignore_global_error) and let your global node check for it before triggering the human transfer. That way your global safety still works, but you get control over that one case.
For the signature, you can grab it from the request headers (usually x-retell-signature) inside your code node and pass it along in your fetch call. If your node doesn’t expose headers directly, just store it earlier when the webhook first comes in and reuse it later in the flow.