Next time it is stuck for a while, press the ESC button to see what’s going on. It sometimes happens that processes wait for other processes to be terminated (like 60, 90 or 120 sec).
The same can happen at boot time, you may think it is stuck but the system is just rebuilding a kernel module (try to hit ESC while booting and you see what’s going on…)
instead of this, next time hit ctrl+alt+F3, then login and shutdown your machine (or whatever else):