First question, how often are you booting up? If you go weeks and weeks without restarting, it's possible that simply letting the machine power off or restart more frequently would lead to smoother user login. People have different opinions on whether this makes a difference, but I find it has for several of my machines. I like powering off every night.
If it happens even with little time between restarts, then the New User test as recommended above. Or, if there are a lot of apps in
syspref>Login Items, start by removing ones you don't really want, and then New User test if it persists.
If New User does not not reproduce the rocky login issue, you will need to dig deeper into what your apps are doing when you log in. I find the Energy panel of Activity Monitor handy for seeing what apps are doing work during login. For instance, apps set to upgrade automatically pop up here even if they aren't in your Login Items.
If that yields no leads, that suggests there's issues with your iCloud or other Internet Accounts, or caches and other stuff in your User. You might need to go back to the Test User and sign into your iCloud/other stuff, let things sit for a day if you have a ton of iCloud photos and drive files,
then see if the rocky login issue repeats.
As an alternative to tedious isolation methods, you could just back up your data and do a
light reinstall (reinstall
without erasing the drive), or a clean reinstall for a true fresh start.