Voltage reducer on a latching circuit
As requested:







simulate this circuit &ndash; Schematic created using CircuitLab

When the button is pressed, R1 and R2 form a voltage divider and C1 is being charged by R2 such that the voltage across it becomes almost the battery voltage 12V (i.e. 100/101*12V) So, \$V_{GS}\$ of M1 of becomes -12V and is being turned on.

When you want the circuit to be self-latching, using R3 with R4 will turn on M2 which takes over pulling the gate of M1 to zero.  

When using D3, you can use a GPIO of the Raspberry PI to take over enabling M1.
Note that the initial state of the Raspberry PI pins is badly documented: some pins are being pulled up by default (so 5V at start up), most are 0V at start up. Pick the right one which is 0V initially.  

I have no idea have fast you can enable a GPIO pin after start up.
When the button is released, C1 is very slowly discharged over R1. Depending on the treshold voltage of M1 it may take up to 0.5 seconds before M1 turns off. Hopefully that's enough for the Raspberry PI to take over.

There is another use for this delay / hold up time by R1 &amp; C1: After the GPIO pin is turned off, disabling M2, the Raspberry PI still may need time to completely shut down. The hold up time (hopefully) also serves for graceful shut down.  

R2 serves three goals: to debounce the switch (together with C1), to limit the charge current of C1 and to protect the gate of M1 against ESD in case the button pin is being touched.

The leakage currents of M1 and M2 are typically in the order of 1 uA, so a negligable battery drain. You can find these values in their datasheets.