Olá Rita,
Uma exceção OutOfMemory no SmsEngine.exe ao processar mais de 30 milhões de arquivos precisa ser tratada com cautela. Não encontrei documentação pública da Microsoft que defina parâmetros suportados para aumentar o heap do SmsEngine.exe ou alterar o número de threads desse componente; portanto, não recomendo adicionar parâmetros de configuração ou registro não documentados. A própria pesquisa pública também mostra perguntas semelhantes, mas não uma configuração oficial de heap/multithreading para esse cenário.
Como próximo passo, sugiro confirmar primeiro qual produto/componente SMS fornece o SmsEngine.exe, incluindo a versão e o caminho completo do executável. Também seria útil coletar o evento de falha no Event Viewer, o consumo de memória do processo imediatamente antes da falha e, se possível, um dump do processo no momento da exceção OutOfMemory.
Se esse executável fizer parte de um produto Microsoft e o problema for reproduzível somente com esse volume muito grande de arquivos, recomendo abrir um chamado com o Microsoft Unified Support. A equipe poderá analisar o dump e confirmar se existe um limite conhecido ou algum parâmetro interno/suportado para reduzir a concorrência.
Se puder compartilhar o caminho completo do SmsEngine.exe, versão do arquivo e produto SMS utilizado, podemos identificar com mais precisão qual configuração é aplicável.