Unify the near-identical HandleFailure/MarkFailed into a single MarkFailed that always persists the failed state and never throws, and replace the inline null-if-blank checks in ListMcpTools with the existing extension. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>