I think you did well enough. It's a little weird that he broke the sword (what weapon did he use? Must've been something wicked, like a vibro-ax?) in one hit.
Of course players will say afterwards that you sould've told them. After all this affects their game time. Yet this might be somewhat cathartic to them; they tried and you took them seriously, didn't just deny the outcome but made it reasonably hard. I believe this to be rather educational. You probably reinforced the thought that teamwork will go a longer way than rouge gameplay. I honestly would have felt a little cheated if a GM told me that this just wasn't going to happen. Now this makes sense in the context of the story.
Confronting him was a good thing too in my opinion. It's always easier to talk to players, especially if something went unexpectetly. Frustration occurs usually when something feels unjustified and personal. Ok, this was somewhat personal, but not becuase PC X was a ****, but because he was acting irresponsibly. Also I wouldn't be mad; it sounds like they got decent gameplay out of that and there is a reason to bring back a known NPC.
While there are many paths to take I feel like you did a reasonable thing. It wasn't patronizing, it was managable (albeit hard, as it should have been according to the given information) and it was possibly educational. If you managed to pack this in neatly with story and overall feeling of the adventure... Good job.