When waiting for units to shut down, have you tried pressing Ctrl+Alt+Delete 7 times? It forces a reboot, and you can turn the machine off before linux has taken over again.
Pressing Ctrl+Alt+Delete 8 times (I think, 7 times to increment the counter, then 1 more time to trigger a force reboot) sends SIGTERM or something to all processes. But many wedged processes (like kwin calling a Nvidia libglx function trying and failing to acquire an spinlock) ignore the signal and can only be killed with SIGKILL, which systemd sends a few minutes after you press Ctrl+Alt+Delete 8 times. I work around this by enabling Alt+SysRq and pressing Alt+PrintScr+R (raw input), E (SIGTERM), I (SIGKILL) whenever systemd gets wedged.