Hashed Storage: Prevent a migration and rollback running at the same time
This is a followup from https://gitlab.com/gitlab-org/gitlab-ce/issues/53966.
When scheduling a migration or a rollback we should verify and abort if the opposite operation is already scheduled.
This is a polishing to prevent unexpected outcomes from accidentally running one while the other is still going on.