I believe that the decision taken by Admiral William Hall was the right one, even though it was unethical. While it was morally wrong for him to let civilians die for a strategic gain, it was the right course of action to take for a man in his position. He was responsible for winning the war for his country. As an Admiral, he was first a patriot and then maybe a philanthropist. In an epoch of war, his loyalty and compassion was largely towards the citizens of his own country. He believed that the involvement of America in the World War was imminent which meant that giving them this telegram would bear no strategic advantage. Sacrificing a few civilian lives to potentially save several others over the course of the War by intercepting and decrypting German messages seemed like a good bargain to him.
The reason why the unethical choice in this case seemed to be the right choice was that he was in a situation where everyone else seemed to be lacking moral fiber. The Germans, his enemies in the War, were willing to attack civilians and break the rules set up by consensus in international court. To try to follow your conscience in a time of war will most likely cause you to the lose the war since a sense of self preservation always prevails over ethics.