Reuses the full middleware chain (ToolErrorHandlingMiddleware, LLMErrorHandlingMiddleware, etc.) so tool errors like 'already exists' and invalid SKILL.md are converted to ToolMessages by the middleware, not silently swallowed or crashing the review task.