Queue changes if the file is not a directory, not just if it is a file (for file deletions).
Move is_locked read checking method to Windows's FSObserver, as that's the only place it's needed.
Add timeout to inotify check events.