The issue is that while the IDE places the PC register at the correct 0x8205 value, it does not touch the default setting of the SP register. SP contains all 1's, which causes the whole debugger toolchain to die as soon as a subroutine is hit, which is the second line of code in ResetISR(void). Therefore, the PC never reaches main() before the debugger crashes.
The 1's in the SP are from address 0x0000 which is 0xFFFFFFFF.
To me, the IDE should override the default SP value location if the start of CODE starts other than 0x0, because it obviously knew to NOT use the default value at address 0x4 for the PC.
If I hard code a proper value for top of ram (0x20030000) into address 0x0, everything works fine. Also, if I load in a second object file with p code starting at 0x0 this also works, because that object file sets address 0x0 to the same the top of ram value (0x20030000) needed for the code at 0x8000.