Is the original title a troll?
If that is a bug, don't fix it please. Nothing forces you to reload, or if it does, nothing forces you to ignore being attacked. "fixing it" would just be one more technical thing that can go wrong. As for units automoving when you reload? If you have some great worry about something something breaking when they sudden jump ahead a few tiles, don't leave a move order queued.
As far as timing? http://en.wikipedia.org/wiki/Mutex
It's not even a hard thing to do. It's a total of three lines of code in C++11. (Maybe one extra switch in the compiler to inform it "yes, you should include native threading support). One to include the threading library, one to declare a mutex, and one to create a std::lock to wait for and later release the mutex.
It's a necessity when multi-threading a program and I think the devs already said they are or did multi-thread FE/LH. So, all of the above should already be present.
Also, if you're doing a lot of loading, you should probably exit and restart the game anyway to keep from leaking/cluttering memory.
TL:DR? PEBKC & The devs should already be preventing data races to keep the game from crashing anyway.