Как не извращался, ситуацию повторить не удалось, папка успевает успешно "улететь" в нужную директорию до копирования в неё новых файлов, но возможно здесь не хватает принудительной установки текущей папки посредством SetCurrentDirectory
Код:
...
ZeroMemory(@fos, SizeOf(fos));
SetCurrentDirectory(PChar(toDir2));
...
а узнать её можно через вызов GetCurrentDirectory