cached_filename_list_ probes os.path.getmtime() for every directory
recorded while the filename cache was built, including subfolders. If
one of those folders is removed at runtime (e.g. the user deletes a
model folder), getmtime() raises FileNotFoundError, which propagates
out of get_filename_list() and breaks model listing instead of simply
rebuilding the cache.
Treat an inaccessible tracked folder as a stale-cache signal and return
None so the list is rebuilt.