Legal, esse e um problema comum em sistemas de transferencias de arquivos baseados dessa forma. Mas no Windows é simples de se resolver;
Sempre use para monitorar o filesystem, inclusive copiar/mover a mesma conta que o gerou ou com algum privilégio melhor. (Não recomendado, mas talvez um Full Control na pasta pode ajudar)
Outro peculiar é tentar copiar ou mover um arquivo ainda aberto. OS monitores de filesystems normalmente vai te dizer se o arquivo foi criado ou removido ou conteudo da pasta alterado. Mas ele nao sinaliza se arquivo ainda está em uso ou nao.
Eu particularmente monitoraria o folder esperando por uma marca. Por exemplo um arquivo que pudesse indicar ao monitor que os arquivos a serem transferidos estão prontos. Tem que ser um arquivo pequeno, de forma que possa ser criado e liberado instantaneamente. Uma vez que o arquivo de marca for criado, o programa monitor pode seguramente transferir os outros arquivos. E no final da transferencia, remover a marca.
Por outro lado, o programa que gera os arquivos a serem transferidos, só irá gerar mais arquivos se o diretório nao conter a marca.
Todavia, a dica, manda pra nós o erro que estás tendo no python... não programo em python, mas deve ter algo como errno() ferr() ou qualquer coisa que reporte os erros de sistema operacional... ou um stack trace com isso