Use un bloqueo de sesión a través de sp_getapplock
Está solicitando simultaneidad controlada por el usuario y esta suele ser la mejor manera.
Esto le permite esperar o cancelar si el bloqueo ya está en manos de otro trabajo. Lo usamos en uno o 2 lugares para evitar que varios usuarios obliguen a la misma tarea a ejecutarse superpuesta. Funciona bien.