The Captain made what was, in hindsight, the right decision. The
decision to NOT to fire required more balls than
the decision to fire, because as you said, if he fired, he could
just cover his ass easily by saying that they were taking
aggressive action. If he didn't fire, and the Iranians really blew
up his ship, and he survived, he would be court-martialed, given a
dishonourable discharge, and (given the US legal system) may be
sued for negligence by the kin of the deceased seamen under his
command.
Sometimes doing nothing is harder than doing something.