I agree that it would make more sense for his consequence to be cleanup. I also understand schools have uniform policies for a reason.
I think you need to let it go. Your son is old enough to handle this matter on his own. Going around in circles arguing with the AP was really too much involvement. In your son's shoes, at that age, I would have been humiliated by your interference.
My 12 year old - also a good student and generally well behaved - handles the majority of his own school business now. If he comes home and tells me about a problem, we talk about how HE can go to school the next day and solve it. I only get personally involved when the issue is truly something beyond his capabilities or legally requires parent involvement.
My instinct, of course, is usually to rush in to protect him and bash some heads in. That isn't how to raise a capable adult though. I keep informed, I watch, and I guide. But rarely do I swoop in to save the day or argue for him.