I might be wrong, but the phrases about not being grateful for all of the concessions, being given very different work ... those sound a lot like teacher fatigue. I think there is this process that happens each year. At the beginning of the year, the teacher thinks they can be the one to change and/or improve your kid. They agree to the accommodations, are patient with quirky behaviors, and try to nurture their growth. At the end of the year, they feel personally betrayed that all of their effort and belief in your kid didn't fix him. They feel like the extra effort should have been appreciated, and that the appreciation would be demonstrated by behaving better, not giving them trouble, improving in a straight line along their expected results.

I have no idea if he'd be better off with a grade skip, and either decision will create its own set of challenges. Leave him, and you'll deal with behaviors because he is bored and unhappy. Skip him, and you'll del with behaviors because he is overwhelmed. Leave him, and the teachers will express frustration that he should be doing better than the effort he is putting in. Skip him, and the teachers will resent him bringing the rest of the group down because of some areas that aren't as developed as the other students.

I'm not saying any of this to be negative. I just think if you look at the costs/benefits pragmatically, and if you don't think there is one right decision and one wrong decision, you'll be freer to make the best decision - and be ready to accept and cope with the challenges that it brings.