Personally, I think you did the "right thing". The point is to have fun. It sounds like the party was a bit underpowered for this, so the combat probably wasn't even very fun for them. I also call this a legitimate save because _you_ felt that as the DM, _you_ made a judgement error with the Wisdom check.
As far as everything else goes...
At the onset of the campaign, I told them that there would be some tailored encounters, but that there would also be some encounters that were not tailored. It was up to them to identify the ones that they are outmatched on and to run or die. They have done a good job so far.
I have pulled my punches from time to time. Usually, the players don't really know it. I have certainly killed them off enough times for them to not think I am just a softie. When I pull the punches, it is because I may have overestimated something and it is not a time when I want someone to die. So, maybe they just went KO.
At some point, I got tired of the number crunching around the table. "Ok, you are at -3, we don't need to heal you quite yet, you might stablize and we might take this thing down before then." So, I stopped telling them what the HP were at when they went negative. I just tell everyone that the character(s) fell. Now, they have to ignore that, or somebody has to determine the status of the downed character(s). It has made my combats a bit more dramatic and they usually get somebody with healing over there much quicker. Every so often, the downed character is dead and no amount of healing will help at the moment. Sometimes the character death is obvious (yardshaft through the head) and they know that they will pick up the corpse afterward.
But, overall, I focus on having fun. That is what I want the game to be about, regardless of whether I am letting the dice fall where they may, or pulling the punches, or even resetting events if I biffed a judgement call.