Ok, that's a start.
We've eliminated the battery as a problem.
Now we know the phone (hardware) works, since you can turn it on in canary mode.
So we have to isolate the problem with the software.
Unfortunately, I have no programming skills whatsoever. The only way I know how to fix this type of software problem is to hard reset (but we don't want to do that).
Try this. Turn it on in canary mode and plug on the cradle/USB-sync wire. I'm sure you won't be able to sync with it with ActiveSync, but you might be able to explore the phone content some other way. Once you can do this, then you can manipulate what's inside the phone, maybe delete a few things, or backup the mxip_vol (or something similar).
Hope that helps