I think the problem is that the async method is not @MainActor on SDKs before macOS 15.
By default nonisolated async functions are put on one of the global executes. I'm not aware of an API that can change that behavior except Task Executor Preference but that hasn't shipped yet according to the proposal.