Warum verwendest du nicht einfach die entsprechende WindowsAPI anstelle dir mit ReadFile/WriteFile manuell einen abzubrechen? Dort wären solche Optimierungen im Zweifelsfalle nämlich auch schon von Haus aus vorhanden.
Ich weiß zwar nicht, ob das noch relevant ist, aber da ist eventuell Vorsicht geboten:
Copying large files on Windows