Hello Psychotechnopath,
From your pipeline:
The ForEachEndpoint is connected to "failurewebhook" on failure, meaning 'failurewebhook' runs only when ForEachEndpoint fails.
Additionally, your ExecutePipeline is connected to the Notebook on success. The Notebook didn't run because the connected activity failed, and subsequently, the 'failurewebhook' didn't run because the Notebook didn't start.
Due to these two reasons, 'failurewebhook' didn't get executed.
I hope this answers your question.