Yes, that was fine.
You're the DM: you're there to challenge them and put them in danger, not to keep them all safe.
A lot of this comes down to the kind of game you all play. Statements like "dice rolls should never kill a character" or "you should never have hidden enemies" are total BS. Those are valid agreed-upon social contract items for your group, but they are not generally true statements. Players in my group would recoil in horror at the thought of having either of those rules in place.
Now, some of the problem may be a lack of common understanding of the kind of game you are all in, and it's worth a discussion about what you consider to be the parameters of your campaign - how can characters die, what kind of tactics are fair, etc.
Hidden Casters
This is fine. PCs love to put on Invisibility and cast spells, bad guys can too. I just ran a game two weeks ago where there were melee opponents and then an invisible summoner who was doing a lot of stuff. The PCs figured that spell effects don't just come from nowhere, made Perception checks, cast Invisibility Purge, bing bang boom. Of course, they're smart players... With the familiar, you telegraphed this pretty hard.
Mind Control
OK, players never like mind control, but there's 100 spells that do it and fear you or confuse you or charm you or dominate you. It's a part of the game. Also a valid tactic. Some people claim that this caused the other PC to die with "nothing they could do about it." That's patently false - they have as much as they can do about it as when they get attacked by any other threat (have a higher AC?). There's not always a specific "roll to avoid dying" in D&D. If this was a summoned creature or invisible creature or teleporting-in creature or any number of other things, it would be the exact same lethality.
Maturity
The real problem here is likely one of more of a combination of common understanding of what can happen in the game and maturity. I suspect you're newer gamers and perhaps young. I suspect some of these folks would "flip out" in the same way if they lost a big fight in a MMO or a basketball game, right? That's just general social maturity and what do do about that is out of scope of RPG.SE.
But there's also the issue of newer gamers not knowing all what could happen. If it's the first time they see an invisible caster, then it's quite a shock. Once you've been gaming 20 years that's instead like about the first thing you check for if anything unexplained happens. We have various "if person X gets mind controlled" countermeasures planned out. But for new gamers, the combination of the unexpected with general emotional trouble dealing with loss is a hard combination.
Once you get folks back, it may be worth using this as a teaching opportunity. "Yes, that was hardcore, right? You can do the same thing, be trickier than your opponents! Now roll a new character even more bad ass than the last one!" "Old school" gaming was a continual exercise in this exact thing - requiring you to actually think about what you're doing and not just run forward and grind - and people loved/love it. If they want to play a different kind of game ("I don't ever want to die! I want save points! And nothing should ever hinder my character, mentally or physically!") then you can negotiate the kind of game you want to run and they all want to play.
I have been called for, it appears.
Canonically, of course, every origin or background of Asmodeus is a lie of some kind. While it's definitely accurate that he fell into Hell from elsewhere, and reasonably likely that his most well-known appearance is not the true nature of him, no one account best encapsulates the reality of what the Lord Below is.
That said, if in your campaign you want both of those stories to be true, here's what I would recommend:
The forces that Asmodeus commanded as a divine champion against chaos were not the forces of good; the Fiendish Codex makes abundantly clear that he was a champion of Law. If weakened Jazirian retreated and became a "god," it follows that weakened Ahriman might have hidden as a servant of these "gods," to discover their natures and find a means to undo them. The true nature of him would have been irrelevant, for Ahriman was indeed a great entity of Law and in his heavenly aspect would have been a celebrated asset for the still-unified conclave of Lawful deities, good and evil. Jazirian would be reduced to one voice out of many in the throng, making accusations that... what? Asmodeus wasn't nice? Say what you will about him, he's Lawful to a tee.
While Ahriman's body bleeds out in a barren and terrible corner of the multiverse, Asmodeus puts a plan into motion to seize total authority over that plane, recovering his true form and protecting it from the interference of Jazirian or the other gods. Binding himself to the powers of Law, he secures safe purchase of his living tomb by leading the forces of Law against the demons, ensuring they never strike as far as Hell. In negotiating the execution of his duties apart from the godly realms, he strikes a deal that serves him with a source of power from which to regain strength over the eons and lets him undermine Jazirian and the other gods by stealing their worship. Ultimately, by choosing to become something weaker, a mere shade of his own magnificence, Ahriman becomes Asmodeus, a wholly unique entity with a much stronger position compared to the other Serpent of Law.
Will that work for you?
Best Answer
This is a common problem - I always have players wanting to pick someone up and carry them along, or push them out of the way of a closing door, or hit them with a rope or something while they're falling or in the water near a ship, or trip them so a trap passes overhead, or disarm them of a magic gem they're holding when they just realized might melt their face off, or they need someone to stab them to activate their Kewl Blood Powerz (tm). And these actions all have the same root problem, which is that attack rolls/CMB checks aren't technically opposed, unlike skill checks and saves, so it's not clear how someone decides to fail the check.
RAW is silent on this, so let's try out common sense, as is our God-given right as GMs and players. Should it be a lot easier to hit/move/disarm/trip someone who's not resisting it? Yes, totally. Should it be automatic? No, certainly not - even if the person isn't resisting, there's sheer physics in play.
Here's how I usually rule.
First, the target decides whether to resist or not. If PC#1 comes lumbering towards PC#2, maybe he trusts him to bull rush/trip/stab/touch him and maybe he doesn't - in intrigue-rich games this is a nontrivial decision (he's reaching out to touch you while you're in melee... A Cure Light Wounds spell, or his long-awaited betrayal?). If they resist, normal rules apply.
Second, if they're the trusting sort, then if it's a to-hit roll I use flat-footed AC (touch and flat-footed if it's appropriate, like tossing a rope to someone). If it's vs. a check, like with 3.5e bull rush, that's harder. I normally play Pathfinder, where it's a little more straightforward, so I'll reverse-engineer from there.
In Pathfinder, there's the somewhat cleaner CMB/CMD mechanic that covers all combat maneuvers.
Part of CMD is, in theory,"active opposition", because it's factoring in your BAB and STR and DEX, all of which are under your control. So in these cases I assume you can willingly fail the part that's in your control (BAB + Dex + Str), leaving CMD = 10 + special size modifier + miscellaneous modifiers.
IMO this strikes the right balance of "not automatic" and "not way super hard in an unrealistic way".
So for 3.5e, that means the person can't just fail the opposed check, but they don't have to roll it, they can just set a passive DC of 10 + relative size. So the wizard is going to have a tough time bull rushing his ogre buddy out of the swarm, while vice versa should be a cinch unless something goes really wrong.