Raboot, Buizel, and Piplup! I absolutely adore all of these pokemon and while I did eventually evolve them, I delayed it for quite some time so I could enjoy them more!
I was the same for Buizel in my last playthrough of Platinum, I absolutely love that Pokemon so decided to keep it around for a few more levels! I sometimes do that with a few other Pokemon as well, but generally, I'll stop others evolving just so they can learn some new moves.
Plenty of times! A remember not evolving Poliwag back in the day because I did it once and thought the Whirl/Wrath evos were ugly, lol. I’ve also withheld evolution stones from Pokémon just because I wanted to play through the game with hyper over leveled Eevee / Pikachu / Vulpix / etc.
I used to do this all the time in older games, because base stage Pokemon learned more powerful moves at an earlier level and I thought this was a good thing. Then I learned patience with grinding and just let them evolve immediately so that they'd have better stats.
But I also refused to let Rowlet evolve in Moon because I can't stand Dartrix or Decidueye.
Yes, for many reasons. I like using Baton Pass in-game so regularly make Eevee hold out until lv. 36, and often find that due to the ease of passage in early phases of a game I don't get enough time with my starter so delay their evolution (in my two saves this year I evolve at lv. 20 and lv. 40). Occasionally I just don't like an evolved form so I don't use it - my Platinum team from my most recent save a few years back has lv. 70+ Munchlax (bred with Curse) and Buizel as I often used Snorlax and don't like Floatzel.
In my early days playing I never stopped an evolution though, as back then the games were challenging for me (physical / special types aren't explained in-game so Emerald was tough until I discovered this site).
i... don't think so? not intentionally, i don't think. i don't recall, anyway. if i have, it was probably just to see the dialogue that comes up after i've stopped the evolution, but i dont think i've stopped evolution for any one particular reason other than that.
If I know a Pokemon learns certain moves at an earlier level than they do after evolving (or even moves they wouldn't learn otherwise), then I'll hold them off from evolving for a little while. Most recent one I can think of was holding back Raboot until it learned Bounce, because I think it was another 8 levels or something until it would learn it as Cinderace, and it wasn't one of the feature Pokemon in my party, so I didn't worry about it being a little weaker than the rest of the team.
We've done that a couple times to get Pokemon to learn moves, but the first game that we kept a Pokemon at the first stage the entire run was Pokemon Shield because we did not like any of the final starters. It was actually a fun challenge to play through while never evolving your starter, but unfortunately the Gigantamax moves all looked awkward :v