What you said is right, for should means possibility and obligation and ought means only obligation.
Therefore he shouldn't have left for America means ①It is possible that he hasn't left for America and②He was not obliged to leave for America, but he did. On the other hand, he oughtn't have left for America only means ②He was not obliged to leave for America, but he did.