А в этой обработке контроль возможности удаления и затем удаление делается ДЛЯ КАЖДОГО помеченного объекта по очереди.
Вы совсем не правы, видимо, плохо прочитали код исходной обработки (да и типовой - тоже).
И в вашей обработке, и FullMoon - нет контроля ссылочной целостности.
Это первое, и самое главное. На этом можно было бы закончить, т.к. данная обработка сразу и однозначно переходит только в разряд "примеры кода". Ссылочная целостность есть только в типовой.
Далее.
Проблема удаления помеченных в больших базах не в
и затем удаление делается ДЛЯ КАЖДОГО помеченного объекта
И у вас, и в типовой (не знаю, как у FullMoon - видимо, у него-то как раз все сразу удаляется) - удаление идет поочередно. В цикле, с перебором каждого элемента, допущенного к удалению (у вас - в единственной процедуре, в типовой - в процедуре "вУдалить".
Проблема как раз в инструкциях 1С:
"УдалитьОбъекты"
"НайтиПомеченныеНаУдаление"
("УдалитьОбъекты" используете и вы) - они виснут на большом количестве элементов, а "влезть" внутрь функций невозможно, нет даже параметров их поднастройки (например, на удаление/поиска блоками/определенного количества).
Основное зависание - на "НайтиПомеченныеНаУдаление", на "УдалитьОбъекты" - в меньшей степени.
Именно эти функции и нужно заменить аналогами, и искать ссылки/удалять блоками.