We do stats update of gold, classes, remorts, and quite a few other things. The game does a load of every character. The problem was I was using extract_char_final() which in my case called Crash_delete_crashfile. I have a few very specific features which alters extract_char_final().
My problem was that when the stats() updater ran, it was calling extract_char_final() which inadvertently ran Crash_delete_crashfile. Wiping out all crash rent files. I could not see it in the logging because by the time the game booted the rent files were gone. Hence in that 2-3 seconds of reboot, when I would go over to the plrobjs/ files the game had already rebooted thus wiping those files.
A very stupid mistake on my part, but your suggestion did make me think outside the box. If all else is right, then the least likely thing could be the cause. It smelled like Crash_delete_crashfile, and acted like it. I just had to prove it, and I finally did when I ran the game in GDB mode.