To the original question "shutdown" vs. "poweroff": As the names imply, "shutdown" ends in something like "cli(); while(1);" while "poweroff" communicates somehow with the power supply before ending execution in a similar or same loop like "shutdown".
(Only for the case that there is a problem with the power supply.)
In case of Raspberry Pi, by default, it is the same. However, there is a standard kernel overlay available, which can be loaded by modifying /boot/config.txt:
dtoverlay = gpio-poweroff
which changes (by default) GPIO26 (Pin 37) to an Output driving High.
As this pin is not used by default, and unused pins are inputs without pullup/pulldown, a simple circuitry can cut power supply at High level.
Note (for the designer of circuitry): This pin will revert to Low after power cut, of course! So use a flipflop.
As the overlay name "gpio-poweroff" should imply, it is called (somehow by systemd) on "poweroff", not on "shutdown" or "halt".