Обратил внимание, что при порционном удалении объектов с контролем ссылочной целостности, если связанные объекты находятся в разных порциях, то удаления не происходит. Например есть справочник Файлы и справочник ВерсииФайлов. Оба элемента помечены на удаление, один ссылается на другой, оба присутствуют в общем списке. Запустил удаление порциями. Через двое суток всё завершилось, но эти элементы остались нетронутыми. Запустил классическое выборочное удаление и они удалились.
Возможно есть смысл проверить работу механизма на более маленьких порциях.
Может быть есть смысл реализовать параметр - "рекурсивное добавление кандидатов". Т.е. если в основной выборке добавлен элемент на который есть список ссылающихся объектов помеченных на удаление и все они без исключения помечены на удаление, то все их добавлять в основную выборку. Повторить поиск для новой выборки с добавленными кандидатами до тех пор пока результат не станет пустым или не попадется элемент не помеченный на удаление. Если результат пустой и не осталось ссылающихся объектов, то можно пытаться удалять объект с кандидатами, если нашелся один объект мешающий удалению, то всю ветку взаимосвязей помечаем как не удаляемую.