Two things I would suggest. Open Event Viewer and clear all the log files.
Restart. Wait a few minutes until everything stabilizes and all the startup processes complete.
Load Sonar and mark the exact time.
When it fails, open the event viewer and look over any messages from that time.
See if that gives a clue.
The second thing is what I always use when faced with a messy situation: ProcMon.
This is a very powerful utility from SysInternals (part of Microsoft).
It will log every system call and registry operation by the system.
It will take a bit of time to get familiar with it, but basically you just start it up and then start Sonar.
Stop it when the crash occurs and then exclude unnecessary system calls by process name.
You will have a gazillion things to look at, but with time, this can payoff. It is mind-blowing to see all the system calls required just to open a single file.
Once you get familiar with ProcMon you will find it incredibly useful. I've used it many dozens of times, so I'm used to many patterns of system behavior. You can see that localization calls are made looking up language packs and locale info, crypto routines are loaded to decode stuff, etc. Eventually you just skim over a bunch of stuff and nail things down quickly.
Finally, by all means use a 64-bit OS. 32-bit OSes are dead. You can still run 32-bit Sonar, but why would you want to do that?