1d5fa8230e
Addresses T7/T8/T11 code-review minors: route the sync dispose through DisposeAsync so a double Dispose()+DisposeAsync() stays a no-op; cover the sync path. Claude-Session: https://claude.ai/code/session_012SDSQ3AcaXqPcBtDESBRii