This is likely something running in the background of your user session and not “getting the hint” to exit.
Have a look through your process list and see if there’s something obvious, and e.g. try rebooting immediately after logging in (i.e. without running other applications). If you try from both the DM and TTY it might e.g. narrow it down to something in your Startup applications.
Rebooting immediately after login has the same effect, rebooting from GDM is ok. My autostart folder is empty. Is there some additional logging apart from journalctl?
Edit: I may have found something: GNOME under Wayland has the problem, GNOME oder Xorg not.
Systemd updated on Arch Linux from 246.6 -> 247.1 3 days ago and we have been seeing this 2 min hang on every shutdown/reboot since. Applying @bberg’s single-line fix to add Slice=-.slice in the [Service] section of/usr/lib/systemd/user/gnome-session-restart-dbus.service fixes the issue.
Just add Slice=-.slice to the bottom of this file as root /usr/lib/systemd/user/gnome-session-restart-dbus.service