The blockquote problem isn't you: I noticed earlier today that it's also responding to # etc, which kind of defeats the purpose of blockquotes. Apparently you need to use "Preformatted text" for it here (though that's got other issues of its own).
ugh. So yeah - systemd is clearly misrepresenting things, as expected, because it's not looking at reality. You can't go from "Started ater 31s and took 20ms" to the next one "Starting at 1min+" and claim that's an accurate list of events.
Problems like this are generally pretty easy to fix if you have the machine in front of you, but very slow to deal with remotely because you just don't have the information you need and have to uncover it a piece at a time.
For example, have you done anything like "encrypt my home folder"? Or are using encryped swap, and so on?
The "black screen with a cursor for a while" is probably X starting up, but it depends on what the cursor looks like, and if it was then the time between that and login shouldn't be more than a few seconds at most. I have no idea where any "Ubuntu logo" is coming from, unless that's the boot splash.
My own machines didn't really change at all in boot times when I went from 16.04 to 18.04, but that's probably because I'd removed most of the problematic pieces long ago, so your issue is basically just a lot of guesswork from my end.
One thing I think we can infer is this: if systemd lost track of 30+ seconds of your boot, then the cause of that has to be something that happened prior to that missing time. Two especially-stupid boot delay causing services are snapd and NetworkManager-wait-online, but although those are certainly not helping you they're also not causing disk thrash, so they aren't the mysterious "big" problem.
I think the first thing to do is put yourself in a position where you can see what's going on a little better. This piece may sound scary, but hopefully won't be in practice.
edit "/etc/default/grub" as root, i.e. "sudo pluma /etc/default/grub" (or whatever editor you're comfortable with). Find the line that says "GRUB_CMDLINE_LINUX_DEFAULT" and if it has "splash" or "quiet" in there, delete those words. That is, what you want is a line that just says
If it has anything more complicated than "splash" or "quiet" in there, STOP and post that here first just in case.
That will let you see what's actually happening during boot, and it may become obvious from that alone what the problem is.
You might as well disable the services I mentioned earlier too - like I say, they shouldn't be the problem, but they're basically useless and will save you a few seconds. They can easily be turned back on later if you want them again. We'll take out a couple of others as well for now.
(Note: you can use TAB to fill out the service names. On my machines, a lot of this stuff has been removed entirely, so I'm working from memory and might not get the names exactly right).
$ sudo systemctl disable snapd.service
$ sudo systemctl disable NetworkManager-wait-online.service
$ sudo systemctl disable apt-daily.service
When you reboot, you'll see a lot of text go scrolling by. If that stops scrolling for several (or many) seconds, the last few lines will probably give you a good hint as to why. It's also entirely possible that that part will go fine, and then you'll go to a (black) graphical screen with just a cursor on it and nothing will happen for several minutes, again. At that point, if you use CTRL-ALT-F1 you'll get a tty login prompt. If you can login through THAT right away, that's useful information too. If you do,
dmesg |tail after you've logged in will also let you see what's going on in real time. CTRL-ALT-F7 will take you to your graphical login whenever that's ready, if it doesn't take you there automatically at that point.