Pode ser o antivírus local ou o serviço de indexação que verifica e impede que os arquivos recém-copiados sejam excluídos instantaneamente.
Eu programaria um atraso e tentaria novamente com falha.
for (i = 1 to 10 etc...)
{
try to remove directory
if directory does not exist, break out of loop
wait a second
}
if directory still exists, abort!