The point I want to raise though is this; Your buddy is ultimately responsible for his/her own safety.
Absolutely true, but perhaps this is a grey area in a court of law?
You're not making any mention of how deep the dive was but if you had planned on a BT of 40min I'm assuming it wasn't to the sort of depth where you'd have reason to believe that your buddy's judgement was impaired.
Doesn't matter how deep. Deep enough to drown in is very shallow.
So, if your buddy tells you that he/she's OK, why call the dive? Your buddy might not be having the greatest dive ever but would he/she really prefer to end it prematurely? He's the one with the issue, let him make the call on whether or not to thumb the dive.
You call it because he/she won't and is obviously having many issues. Leaky mask should not be an issue, but apparently it was. This may just be a comfort thing. My mask leaks constantly because I prefer a loose strap, I clear it all the time and it is never an issue, though some people are so preoccupied with a leaky mask they forget just about everything else. And cramps should never be taken lightly, they can affect your ability to swim.
Last but not least, when you are buddy diving, their problems ARE your problems, and if you think the problems are getting to be too many, or too large, better to call the dive while everyone is ok than to attempt to perform a rescue after the fact.
Like I said though, I'm not berating you for the decision you made, I'm just saying that I would probably have done it differently. It's great to have a regular buddy who's habits and mannerisms you get to be familiar with.
That is a true value of this board. You can read about someone else's style, decisions etc. and decide if this is something you want to emulate.
I'm fortunate to also have a regular buddy (my wife) but our agreement is that I won't make decisions on her behalf unless I've got good reason to believe that her judgment is impaired. We also have an agreement that she will not continue a dive because she feels "obligated" towards me or anyone else. The same goes for me as well.
If you guys are a true buddy team, you are obligated to call a dive on someone else's behalf, largely because they may not. Many people have trouble evaluating whether their discomfort is really warranted. This honestly should never happen. Diving is supposed to be fun, and if you are not having any, then call it. Also remember, it is not one large problem that shows up in the DAN report, it is the sum of many small ones.
This means I know that she will thumb a dive if anything's wrong, meaning I don't have to thumb a dive on her behalf because I think something is wrong.
Under ideal circumstances, but never all the time. Remember, the best rescue is the one not needed.
And also, it is better to thumb a dive and apologize, than to fill out the accident report and delivery THAT apology.
I do not think the OP over reacted at all. He wasn't comfortable with the situation, and did the correct thing.