ModelService.removeAll() basicamente só chama ModelService.remove() para cada Modelo na Lista (ou fazia isso da última vez que verifiquei), o que significa que está disparando uma consulta SQL separada para cada elemento. Se a latência entre seu servidor de aplicativos e o banco de dados for de apenas 1 ms, isso significa 1 ms EXTRA por elemento a ser excluído, sem contar os custos adicionais de processar consultas separadas.
A maneira mais rápida que encontrei para fazer isso é criando um script Batch Mode ImpEx que limpará a tabela de forma muito mais rápida. Em seguida, você pode executar este ImpEx (usando o modo legacy) a partir do seu código e os elementos devem ser excluídos de forma razoavelmente rápida.
Obrigado, James