snapd should not hold back any other services from starting (not even snaps) so even the fact that snapd takes 21s to start should not affect your boot speed … I see another 20s for journal-flush service, that indicates you got rather huge logs … is your disk filled with giant logs (in /var/log/journal) by chance ?
I guess from here on we need someone from the snapd team to give more debugging hints, pushing the output of journalcl -b to termbin might be helpful …
2021/10/05 18:11:22.964576 main.go:176: description of prepare-image's "<target-dir>" is lowercase in locale "pt_BR": "o directório de destino"
erro: cannot find startup: ifacemgr
snap changes
2021/10/05 18:08:26.575087 main.go:176: description of prepare-image's "<target-dir>" is lowercase in locale "pt_BR": "o directório de destino"
ID Estado Gerado Pronto Resumo
132 Done ontem às 22:49 -03 ontem às 22:49 -03 Reverter o snap "citra-emu"
133 Done ontem às 22:55 -03 ontem às 22:55 -03 Actualizar o snap "citra-emu"
134 Done hoje às 10:56 -03 hoje às 10:57 -03 Remover o snap "citra-emu"
135 Done hoje às 10:58 -03 hoje às 10:59 -03 Instalar snap "citra-emu"
136 Done hoje às 12:30 -03 hoje às 12:32 -03 Instalar snap "kdenlive" from "candidate" channel
137 Done hoje às 12:37 -03 hoje às 12:37 -03 Actualizar o snap "kdenlive" do canal "latest/edge"
138 Done hoje às 12:41 -03 hoje às 12:41 -03 Remover o snap "kdenlive"
I see, the loopback device setup takes very long for some reason. I’ve tried to analyze it a while ago in another topic Snapd causing lengthy boot time? but it looked like the problem is in the kernel. This is probably running from a spinning hard disk drive, isn’t it? Anyway, I don’t think that’s a fair justification for this being slow.
Another observation is that on my Arch and openSUSE boxes, snapd.service does not appear in the critical chain. In fact, it’s not really wanted by the multi-user.target. While on 20.04 cloud image, it’s clearly enabled and in the critical path. You can try running systemctl disable snapd.service snapd.seeded.service, which will prevent snapd from being started during boot, but will keep the snapd.socket around, so snap commands will work normally. A downside is that automatic updates will not be applied until the snapd daemon has been started.