Request authorization off main queue and marshal callback result back via DispatchQueue.main.async. Check current status first to avoid unnecessary system prompt if already authorized or denied. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>