Doesn't seem to be a way to edit my question. Here are a few other things I've tried:
In VD_IO_CFG, the LVSEL bit seems to work (changing it changes when the reset occurs), but the LVDIE/LVDRE bits aren't affecting behavior.
Disabling voltage detect in ACTIVE_CFG (e.g. 0x0010---- instead of 0x3F10----) works as expected, disabling the reset.
Forcing the SPC interrupt with NVIC_SetPendingIRQ(SPC_IRQn) works as expected.
I've also tried disconnecting the USB and powering P3V3 directly, with the same results.