Вы никогда не сможете определить, используется ли файл в данный момент, только то, что он использовался недавно. Причина в том, что в тот момент, когда скрипт возвращает файл, он может быть закрыт любой программой, которая использовала его ранее. Написание таких сценариев приведет только к нестабильному поведению.
Гораздо лучший подход - просто делать то, что собирался делать сценарий, если файл не использовался, и перехватывать исключения, возникающие в результате конфликта использования. Конечным результатом будет гораздо более простая и надежная программа.