To get to root I find it helpful to use:
sudo su -
This is a login shell, it runs root's dotfiles and sets up whatever environment you want root to have.
However, this will leave $LOGNAME as your logged in user.
To get a full login shell, as if you logged into the console as root:
login -fp root
Also, if you, like me, use root a lot, you can set that login command in your terminal. In iTerm I have a root visor and window where I login as root.
Why?
using sudo litters my homedir with root owned files. I trip over them,
sudo bash or sudo zsh make me root but with my mortal environment.
This is not what I want. I want separation.
Convenience. There are lots of things that root sees that admin users do not.
Chiggsy works in his homedir.
Root works on the system.
man login