mdapi-sync-calls-in-async-context-require-asyncio-to-thread

All conn.mdapi.* method calls are synchronous (simple-salesforce uses zeep/suds under the hood). Calling them directly inside async tool functions blocks the event loop. Every mdapi call must be wrapped in await asyncio.to_thread(conn.mdapi.Method, args). Found 23 violations across metadata, security, integration, and utilities modules.