It looks like to solve the soft power problem I need to take some more extreme measures to isolate the soft power system from the controller.
In the previous attempts, two BAT54As were used to allow any of the buttons to drag !PWR low. Unfortunately, this also creates a path from the pull-up resistor on the soft power MOSFET through the controller pins and their protection diodes to Vcc.
The fix for that is going to be to give each switch a BAT54C instead. One leg of each array will pull the controller pin low and the other will pull !PWR low. A side effect of this arrangement is that it breaks the path from !PWR to the controller pins.
Breaking the connection from the controller's !PWR pin requires adding an N channel MOSFET. The software will now instead pull the respective pin high instead of low, which will turn on the N MOSFET and drag !PWR low.
This is going to be v1.3.1, and it's on order from OSHPark now.