You probably have long wires going to the Nfet Gate diodes or ground and Vgs is probably being exceeded. (use 15Vmax? (rated 20V) Put a clamp on that gate.
Inductive spike fault.
Assuming my theory is correct, better idea. add 0.01 uF cap across NchFET D-S, G-S; as a long wire inductive loop damper. If logic or dry contact switch rise time will be fast enough but dampen.
As per your comments, let's discuss why the single PMOS solution doesn't work.
All I/O pins of modern microcontrollers use protection diodes to, well, protect sensitive internal circuitry from fault conditions - e.g. if you externally drive 5V or -5V onto a pin of a MCU, which is powered by 3.3V. This could also happen due to ESD, and without such protection, devices are easily destroyed.
However, this has two consequences:
- If a microcontroller chip is turned off (0V on its power (Vdd) pin), putting a sufficient voltage to any I/O pin, will cause current to "overflow" to the Vdd pin, and the chip will spring to life, as if you've powered it normally
- Again, in a turned off MCU, if you have a pull-up resistor to an active supply, small current will flow into the chip, try to power it, but as the current is insufficient, it will hang into this "neither on, neither off" state you're seeing.
A simple rule of the thumb there is that, if a MCU is controlling something, and it is expected the MCU to be off or otherwise disabled for some time (e.g. in sleep mode, for MCUs that don't keep their I/Os driven during sleep), it is best if the controlled thing requires an "active on" singnal, and there's a pull-down resistor. No resistor to the gate of a MOSFET would be bad, pull-up is worse, pull-down works.
Note that this kind of precautions aren't required if the MCU is expected to be always active. It is not the best practice, as resistors cost pennies, but you could omit the pull-down resistor in such a case.
For your configuration, the two-MOSFET solution is about the best it can possibly get.
Another scenario to explore, which can bring the same functionality without any MOSFETs, is to use the sleep/reset/wake-on-change functionality of the MCU (I'm not proficient with the Wemos, but I bet it has something like it). When you want to "turn off", you simply go to sleep. The MCU will still consume some current, but that would be too small to matter. And your switch can be wired to a reset pin of the MCU, or, if you want to keep the processor state - to a pin, on which you've configured interrupt/wake-on-change.
Best Answer
Although parts of some of your descriptions have been a little unclear, your recent statement was:
This only leaves faulty / damaged (e.g. by ESD) / counterfeit MOSFETs (or perhaps a problem with your PCB or other physical construction) as possible causes.
You could edit the question to add photos of your physical hardware, in case that shows something of interest. But the first thing I would do, is to get a suitable working, and known genuine MOSFET, and repeat your test.
Based on your information, I believe your MOSFETs are either not the type you believe, or are faulty / damaged in some way.