`ClientSession` never sends `notifications/cancelled` when `call_tool` is cancelled — server-side coroutines leak

用户在使用 MCP Python SDK 的 `ClientSession` 调用工具时,当请求因为超时(SDK 内部超时或 `asyncio.wait_for` 外部超时)被取消,服务端对应的协程仍然处于挂起状态,无法释放已占用的资源(如数据库连接、锁、文件句柄)。长时间会话下,每次取消调用都会造








