As far as a race condition, I'm not too concerned since I'm polling every second and I'm not doing anything to the file, not even reading its contents.
As for my original function it seemed to work several time but failed on subsequent attempts.
Regarding the other function options presented none provide accurate results. Seriously, try them on a known file open in another application, such as an .xlsx in Excel or .docx in Word. See what result you get while the file is open (should return true) then the result after it's closed (should return false).
I have working code that allows me to make a true determination but it involves retrieving all desktop handles and consumes massive page faults that I'm trying to eliminate.
In any event that you all for your input.