The code below that I put in the moonraker.conf file is what I got working and I'm going to use unless I discover some weird side affects. I wired my E-Stop pushbutton to pull the input to ground when pressed, but that caused the E-Stop to occur when I released it (instead of when I pressed it), so I added the "!" inversion symbol to the pin definition. I also wired in a 4.7kOhm pullup resistor to 3v3 (versus using the software pullup). When I release the E-Stop, the last instruction apparently reboots the machine using "machine.reboot", but I still have to do a "FIRMWARE RESTART" in Mainsail after that. I'm still learning the difference between the two functions. Thanks to everybody!
this code runs in moonraker.conf
[button e-stop]
type: gpio
pin: !gpiochip0/gpio26
on_press:
{% do call_method("printer.emergency_stop") %}
on_release:
{% do call_method("machine.reboot") %}