Thanks for the ideas, all - and keep 'em coming. This is an interesting read.
I am now leaning toward light or no armor because of the swamp (good idea) and the gauntlets of ogre power is also a good call so I can dump Strength and put some points somewhere else.
Is everyone more or less in agreement that variant human is the way to go here?
It is just easier to optimize for such lower levels by having that extra first level feat. But some other tank setups would welcome different races. Hill dwarves add a nice amount of HPs to any option, while mountain dwarves add some armor proficiencies (if you would play a class that has no armor proficiencies at all, this could save you two feats, or one when compared to variant human).
If you liked the idea of lighter armor, an abjurer can be a good contender. You can make good use of the gauntlets plus booming blade on your staff (or simply pick a magic weapon) to stay on melee, and keep refreshing your ward when it gets low by using shield or counterspell. This strategy gives you ok-ish AC (mage armor + 3 dex = 16) that you will not depend on during the initial combat phase as you start with your ward full. When it lowers, you will be using shield, for an AC 21. Other useful spells are the ones that move enemies or create chokes/difficult terrain, etc, to put your enemies where you want them (i.e. away from your allies).
You could also go full warlock, if you enjoy those annoying armor of Agathis tactics I described earlier. In this case you would abuse of temporary HPs that you can refresh easily. You can go fiend to get those temp HPs when your armor is over, and choose tome pact for shillelagh + booming or green flame blade (despite the name, I guess these cantrips are not limited to actual blades, right?) + blade ward. Now you will have 15 HP armor of Agathys twice per short rest, that you can improve it to effective 30 HPs by using blade ward every round. Pick warcaster and sentinel as feats (variant human again...). You go to the face of your enemies. If they attack an adjacent ally, reaction cantrip them, if they disengage, the same. Anyhow, any time you hit, you stop them, so they will have a hard time fleeing from you. If they attack you, 15 DMG retaliation from Agathys. They won't have many options. Moreover, your attack attribute is CHA, so you are not MAD at all. Thinking of it again, I guess sentinel and booming blade don't really mix well, so maybe in this case green flame is the better option. Top up everything with some repelling eldritch blast for control when enemies are not even willing to come closer, and you're golden.
By the way, wands of web and staffs of the python are only uncommon, so I would say they are nice options for tanky spellcasters. The web helps control the battlefield, and the python is extra HPs + grapple / constriction.