This is a very hacky decision, but in a very hairy situation, you can run a polling cycle to check the size (or modified date) of the file. If this does not change for a while, you can safely assume that the file has finished copying.
EDIT: This is not an optimal solution in the middle case, but keep in mind that in the case of OP, the best solutions are excluded from problematic constraints. Think about this before thinking about downvoting.
Fritz h
source share