I agree that this situation sounds toxic, but the situation may change now that the SM has lost it and been asked to take a little time off. The quickest and easiest thing is to just pack up and find another troop. But is it really the best answer. At times like this we as parents (and/or adult leaders) must take a step back and remind ourselves that the key word in Boy Scouts is BOY. While leaving may make you as a parent feel better about the situation how does your son feel about it? (This may take some real interrogation as boy of that age will often parrot back to us what they have heard us say to others because they think it is the "right" answer and not tell us how they really feel.) You are upset about the rank (and rightfully so from what I have read), but your son may be more upset about leaving his friends behind than he would be about not getting the badge for a few more months. There is no right and wrong answer here - it is all about how he feels and his preferences. I can tell you that I have two boys, the older an Eagle w/ 7 palms and the younger a Life Scout who is about 4 hour away from completing his Eagle project, and if I asked the two of them what they would do in this situation I would get two completely different answers. And I as a parent would act differently for each of them. Scouting bonds and friendships are things that very often last a lifetime. In my 30 years of involvement with youth sports and scouting I can tell you that left to their own devices many if not most kids would without question choose not to leave and give up the relationships they have formed over a card and a patch. I was in a similar situation with one of my boys and came home from a meeting all tight and bothered over something that was done that I felt was wrong and disrespectful towards my son. After venting about it to my wife we realized that I was way more upset about it than he was I was insulted that they didn't treat him better out of respect for me than he was over the whole thing. What really put everything into perspective was when my son overhead me venting and said "Dad, get over it, it's not your problem". (Out of the mouths of babes.......) What you really have here is a huge moment of truth with your son. You have the opportunity to sit down with him talk this out and make him a real part of the decision process. What a wonderful parent child bonding experience it would be to have that discussion and act on his opinions accordingly, to show him not by words but by actions that his opinion and feelings were an valued and valuable part of the families decision making process. (While this would be a great experience for any young teenager, it would be even more so for a handicapped child, who is usually in even less control of his life and surrounding than other kids his age.)
I am not advocating that you make a decision one way or another, just that youo involve your son in whatever decision you do make. While we as adults are mostly drive by outcomes and results children are all about process. I had one former scout who stayed with the troop rarely missing a meeting right up to his 18th birthday and never made it past 2nd class. While this drove us crazy as adults he would simply say "I don't care about the patches, I'm just having fun doing all this stuff". He was one of the happiest scouts we ever had. As long as you are keeping the boy happy your decision can't be too far off the mark.
One last thing, I saw a lot of people telling you to speak to your District Advancement Chair. I think they are really jumping ahead of the game on that one. There are a couple of places I would stop before that. The first person I would lean on was my Unit Commissioner or even the District Commissioner. The purpose of the Commissioner service is to lend a helping hand and guide individual units over the bumps in their day to day operations. Unit Commissioners are usually other seasoned or former scouters who would be able to speak with the SM on your behalf as an impartial friendly third party. This might have solved to problem right off the bat. The other person I would look to is your Chartering Organization Rep. The COR is the eyes and Ears of your Chartering Organization and from and is responsible for keeping them informed of what is going on with the troop. The COR is the only one who can actually "pull rank" on the Committee Chair. (If the SMs behavior is truly abusive and detrimental to the troop the COR should be told of this because the Chartering Organization is ultimately responsible for the actions of the troop and its leaders.
Good luck and I hope things work out for you.