this is sort of the essence of the issue; the operation parameter needs to be marked as @MainActor if you want it to be isolated to the main actor. without a global actor annotation in the closure signature, or a capture of an isolated parameter, the closure will be nonisolated, and will run off of any actor. there is an open PR that may make this less confusing in the future.
a similar thread regarding this issue as it relates to parameter isolation can be found here.