Programmatically using `exec` to load files
Looping
while True:
    if test_load(): return  # Run until files load

should simply be
while not test_load():
    # ...

Getting files
It's good that you're using a generator, but you should consider basing it off of pathlib instead of os. Also, it seems like you should care less whether your file starts with underscores, and more that it's a file instead of a directory. For instance:
return (
    file
    for file in Path(dir).iterdir()
    if file.is_file()
)

Dynamic loading
You're not just loading any files - you're loading arbitrary Python modules. Since your examples only show variables being initialized, I'm going to go out on a limb and say: please, please don't load Python code when you should simply be loading data, from any of the common formats - a pickle, or JSON, or CSV, or what-have-you. It's easier, faster, more secure and generally less of a headache.