Okay, so, after several days of trying to figure out the source of the problem, I conclusively determined that the problem lies in the Windows Write Cache buffer, NOT the application buffer. Sadly, I cannot turn off the Write Cache Buffer on my disk (virtual, RAID 10E, not supported by driver, evidently), so I had to find a way to flush the buffer. Calling FlushFileBuffers() didn't work, because that requires GENERIC_WRITE access to the file, which I cannot get, since the application generating the file doesn't have SHARE_FILE_WRITE mode on.
So, I scoured the internet, and it was far harder than it had any right to be, but here is the solution, if anyone ever has a similar issue. Its in C#, but the answer is valid for anything. The exact specifications of the problem are well spelled out, and his findings with explorer agree with mine. "Link":http://stackoverflow.com/questions/3540801/filesystemwatcher-does-not-report-changes-in-a-locked-file
Once I get the completed code, I'll post it here.