Исправление: FileInfo.Length возвращает устаревший размер файла, в который ещё идёт запись, в Windows
FileInfo кеширует размер, перечисление читает лениво обновляемую запись каталога NTFS, а процесс записи может всё ещё держать байты в своих буферах. Используйте Refresh() или, лучше, читайте длину через общий дескриптор с помощью RandomAccess.GetLength.