Because my method has kept me from having the problem I was assuming that the global preferences are locked while one instance is reading them, so the second instance tries to read, fails and then assumes there isn't a file. (Only my global preferences have been killed this way, not my character preference.)
This has only ever happened to me when I am trying to start up multiple instances of mafia at the same time. Has it happened to you when you are only running a single instance?
When I make a mistake and this happens, I quit the instance that lost preferences, then I quit the other instance, which has the global preferences. When I quit the instance that kept preferences it writes out the preferences to disk and they are rescued.