inotifywait de inotify-tools é o que você precisa (para olhar pelo menos). Uma linha como essa fará o mesmo truque que seu script pretende:
inotifywait -e create --timeout 240 "${some_path}/file.txt" && { cleanup_function; exit ; }
com a diferença inotifywait funciona de maneira baseada em eventos, portanto, não é necessário fazer pesquisas ou dormir.