Prevent the same background migration from being queued multiple times with the same arguments

In https://gitlab.com/gitlab-org/gitlab-ce/issues/41615 we had an issue where a background migration would be rescheduled if it waited for external data to be filled in.

Due to multiple fixes to the main application the migration was scheduled multiple times in the same release, this caused a heavier load then expected.

We could try to prevent the same background migration from being scheduled multiple times with the same arguments.

/cc @yorickpeterse