I've been searching the forums and haven't found anything about controlling machine power (charge pump) with the Machine Power (F2) key. I was originally trying to make the charge pump turn on when estop is inactive and that worked correctly, but I haven't found any documentation on using Machine Power to enable. Either I'm an idiot and didn't look in the right place for the information, or I found the solution to the problem. Either way, here's the solution.
in your Hal config file, Delete the line;
net estop-out charge-pump.enable iocontrol.0.user-enable-out
and replace it with the following;
net motion-enabled charge-pump.enable motion.motion-enabled
This will make the Machine Power (F2) button control the charge pump on the G540. The external estop button will work correctly, and the EMC Estop (F1) button will act correctly as well.