This is a classic problem - the file copy will begin, the file will be
"present" in some sense on the file system, and build steps that need it
will begin - but they won't find what they actually need because the
copy isn't fully executed. The standard approach for this is to add a
second file which is only created after the first is done, and then make
the target depend on the second file rather than the first.