Oh, him. You can find a note on his corpse explaining things. Though it's a bit silly, really. He's one of those bosses who has more cheats and cheesy tricks up his sleeve than all Improved Anvil bosses combined. And believe me: that's a LOT of cheesy tricks. I never bother and just control + Y the lot of them out of existence.
However, if you really want to you can actually beat him legally, but it'll probably cost you half your party.
He'll summon an army of Skeleton warriors and vampires AND drop a few Cloudkills on you, plus the spells you mentioned earlier. The demon will usually stun one of your partymembers (no save allowed.....), so forget about that partymember. He/she is dead meat. Btw: Free action doesn't protect against that, nothing does. If either Drizzt (you NEED him) or your pc gets stunned, reload. You absolutely have no chance in hell against the mage, the demon and the army of skeleton warriors and vampires he summons, and you certainly don't want to fight them while standing in a Cloudkill to which they are immune.
So, this is how i did it: in my one and only legal succesful attempt, for some reason no one was stunned. I immediately left the area. Some vampires and Skeleton warriors followed. I killed them, even though Bruenor and Imoen got level drained (did i mention negative plane protection didn't help?). Rinse and repeat. Lost Bruenor due to some Death magic that came out of nowhere. One moment full health, a moment later: dead Bruenor.
The demon was being a royal pain in the ass, but i actually succeeded in stunning him after several failed attempts by using the wand you find in the ship on the coast (unlike the wand of paralyzation, it doesn't allow for a save). Lost Imoen due to a barrage of Magic Missiles (never knew someone could place 20 magic missiles in a sequencer). Lost Cati-Brie to level drain when dealing with the next wave of vampires.
When all the vampires and skeleton warriors were gone, the demon was still stunned. I sent in Drizzt protected by the cloak that offers immunity to mm (forget the name). That made the mage come out of hiding, he cast his mm sequencer at Drizzt, who was immune. My other partymembers were popping potions of extra healing like mad to survive the cloudkill. Drizzt ran back to them. The mage decided to cast something (god knows what, nothing showed up in the combat log) on Jetlaya, who immediately dropped dead. I left the area again and this time he followed. Made my pc invisible and let Drizzt with 100% magic resistance deal with the mage. Went in again, to find the demon looking for his next dinner. Had Drizzt deal with him since my sorceror was completely useless (the demon resisted every spell). Drizzt won but needed a couple of potions since that demon hits like a truck and must have a really amazing Thaco since Drizzt had an ac of -16 by that time.
Tbh: it's quite possibly the most tedious and frustrating fight in the entire series and i heartily recommend cheating your way through it.