The Pi has 3 "components" the CPU, GPIO and Video Core which are relatively independent.
Any of the commands halt, shutdown, reboot (which are equivalent) will reset the CPU to its bootup state.
The Video Core continues to run, and the GPIO pins retail their state.
It is only possible to reset the Video Core and GPIO by cycling power OR pulling the
RUN pin low, which will cause a clean restart.
On the odd occasion when I need to do this I run
shutdown or pull the
gpio-shutdown pin LOW then after this is completed RESET.
On most models (Pi4 excepted) you can use Pin 5 to perform a
shutdown and powerup. See Raspberry Pi 3 model B "dtoverlay=gpio-shutdown"