PVE: Shaman (Any Spec), Holy Priest, Rogue
PvP: All classes have A LOT of keybinds and spells to use when you are pvping with weapon swaps, trinket swaps, items, macros, stances, utility, etc.
Tanks and healers obviously, The DPS class will highly depend on the group composition. Obviously classes with more utility and cc shine in bad situations.
Tanks and Healers - there are few dps classes that do stuff like kicks, tranq shots, etc. but most utility and such is on the tanks and healers
Hunters shine in groups with traps, tranq, kiting, and pet tanking in situations. Mage is always sought after for aoe, warlocks are loved for pet buff, healthstones, and soulstones.
PvP - honestly, every class A LOT of complexity in PvP. This is primarily due the fact that vanilla WoW wasn’t balanced around 1v1s, but that each filled a role akin to things in tabletop like D&D. While a warrior may seem simplistic in nature, but if you decide to go all oonga boonga on the rogue stunlocking you, the mage kiting you, or the warlock dotting and fearing you - it won’t go well. Different tactics all the time.
World: Hunter, Mage, Warlock, Feral
Dungeon: Hunter, Mage, Paladin
My recommendation based on all of your criteria:
Tank and Healer will fit all of that (depending on respecs). For Dps mains I would choose Hunter. Playing a hunter “properly” in raid/dungeon content has probably the most nuance and complexity out of anything else imo; however, is a very chill farmer both in the world and can solo farm Dire Maul and BRD farms with ease. PvP you can dominate BGs if handled well, and can be a terror in the world. You also tend to get geared more often (in a balanced server) due to the need of no more than 1-3 hunters per raid. When it comes spells to press you have about the same as any other dps in a raid, but in dungeon you can kite, pet control, trap, etc. Though nothing will have the amount of buttons to press in PvP like a druid or shaman.