All MigrationCoordinator(s) started from a single MongoD instance share the same logical session id for any operations that they perform (for the lifetime of that instance). Because of this, it is never correct that two migration coordinators exist at the same time.
Under normal circumstances, this is guaranteed by the acquisition of the MigrationBlockingGuard at the beginning of each migration. However, in the case where an incomplete migration needs to be recovered, we don't take it. Because of this, it is possible that a migration for a completely unrelated collection can start while a different collection is still running recovery.