This actually should have been figured out earlier, it's almost too easy not to have been. Lets look at what we know:
1) only happens on Windows. Both Linux and OS X don't have this problem
2) the code has hardly been touched since the original source release
3) possible cause 1, the timer asm, wasn't the problem
4) possible cause 2, the debris filtering, rewriten yesterday so thay shouldn't be it
5) only happens in release builds
6) doesn't happen in release builds when you are trying to trace it
At this point only one thing should be making your ears perk up... compiler optimizations. Yep, the only thing different between the build that works and the one that doesn't is the compiler optimizations. Specifically it's "Global Optimizations" (/Og) in MSVC. I tested 9 different builds with various optimization settings and having that one option enabled made it crash every single time. The 20060614 build is the same code as the 13 one but with the optimizations set at "Maximum Speed" instead of "Custom".
So, after we test it against a build without any of the code changes from me, we can know for sure that the one option is the problem. We can either disable it with a #pragma in hudtarget.cpp (I think that will work anyway) and leave the optimizations as they are, or just use the "Maximum Speed" option for release builds.
Of course the biggest problem for me was just tracking down a Windows box to test with.