You’re pretty much describing my son. When you mentioned the savage incident, my immediate thought was – well yep, “Savage” is a bad term for a Native American therefore it can be taken as racist. Even though the term was meant in a positive manner. Kind-of like how the term “sick” is a good thing. My son would have taken it the same way as your son did. Social cues are hard enough for him to read, throw in slang and its a recipe for disaster. Sarcasm might as well be a foreign language.
Counseling might be helpful. And additional evaluations never can hurt. My son was in counseling awhile back to help him read emotional cues. It was helpful and gave him a sort of self awareness that helps him control his emotional outbursts when he’s unable to read a situation. He comes home and asks more questions now when he’s not sure about how a situation was really going down.
I know you may feel helpless in your situation, but you can provide valuable feedback to your son. You have first hand experience that no one else can give him. Pick up the phone, use Facetime or even just texting. Whatever form of communication works best. Giving your son an understanding outlet of communication could be the best thing. You don’t say the age of your son, but if he’s too young for a cell phone, perhaps you could talk Mom into him having one just for communicating with you. Or if not, arrange a time to speak with him daily.