That kind of situation is exactly why I take a flash or three to everything that I'm shooting. If they don't want me to use flash, then I switch to an ultrawide angle lens (for me commonly the 17-40 on full frame) or 35mm F2 IS, throw ISO up as high as it needs to be. I wouldn't use telephoto in the dark without a flash, even with IS (if it were available...) because the subjects move and you saw the results of that.
Though you could have put your ISO to 6400~12,800 and been fine. Why did you select ISO 1400 at all? Did you look at your meter to see what ISO you needed to maintain an appropriate shutter? Noisy images are better than zero images.
I've had equipment fail on shoots, but I take backups. Most annoying for me is when a main light fails and miss a specific shot that cannot be re-done due to the light misfiring or not firing or anything like that. But, this is where backups come in, I always have a setup just for natural light shooting just in case. I do not show up unprepared for two situations though (such as well lit venue, and no light venue; you have to be able handle both).
I think it's safe to say we've all done a shoot and didn't like the results. I know I've done plenty of portrait sessions and didn't care for most of the results. But as long as you deliver and the client is satisfied, move on. But, you have to deliver.
In the future, learn to use your flash (as you mentioned). Getting on people's nerves is one thing, doing a shoot for a client and having zero images to turn in is another.
Bounced ETTL flash is one of the easiest and best tools ever for event shooting. I don't go anywhere without the ability to do ETTL bounced flash and a 2nd set of batteries. You can turn a poor venue into a well lit event with just one flash. And it's so easy. ETTL is just so useful.
The on-camera flash with the 7D, you could have improvised and put a little piece of paper or napkin in front it as a diffuser or even a bounce surface and had decent light falling on the subject. I've used a sheet of paper to bounce light up and diffuse light forward with on-camera flash (looks loads better than direct flash).
Or, set your flash as fill level and let ETTL do the rest, for direct flash. You'd still have gotten usable images.