All forms of mana steal are an extension of mana drain and are blocked by the respective immunity. He actually steals the mana before dealing damage (despite what the spell text says) in order to prevent the issue of not gaining mana if the target dies. He’s not stealing mana from towers because towers are immune. This one is a design quirk, not a bug.
The thing brought up in the original post is a bug, though.
The issue of some checks or effects straight failing when the target dies bug reports go all the way back to 2017 (reported for Warhawk) and were reported as recently as this thread (reported for Blightwing, where I brought up Warhawk again):
Going to reiterate that the simplest fix for those spells affected would probably be alter the spell effects order to run the relevant check before the damage (in the case of blightwing, check statuses to explode first, then deal damage; in the case of Warhawk, check Hunter’s Mark for extra turn first, then damage, then check hunter’s mark for extra damage). That would hopefully remove the need change how things work universally in the code and just some new spell data would be pushed for a few spells.
Things that steal stats and deal damage were mostly altered in a similar way (despite what the spell text says for their respective spells), because you also can’t steal stats from a dead troop. Things that check skill points to see if they need to do a secondary non damage effect (Orc Veteran, Silver Drakon) appear to still run the damage portion first, but had a similar issue a long time ago where the secondary effect never worked if the target died and were fixed so their check works even if the target dies. Not sure if the check is actually run first and its some visual trickery or if the relevant data is kept around for the check to get run later, but this sounds like a more involved fix.