Have you thought of trying to accelerate him on a subject basis to see if he likes the next class? Then just move him in? I.e. when in 2nd, go to 4th grade for Math and Reading for the first part of the year, then be all 4th the second half?

My smoothest acceleration was that way. I still got to see my old class during recess.

Mr W (27mos) has been hanging out with the 4 year olds for several weeks now and they let him go back and forth, but he is mostly staying across the hall with the older kids. He goes to "recess" with his age peers, though.