I agree wholeheartedly.
Time for tough love.
I can't understand the reasoning that your son does not have time for his daughter's ballet classes due to schoolwork, yet he has time for his own basketball tournaments. Time to drop the extra-curriculars and be a dad. His daughter and his schoolwork should be #1, not rec basketball being more important than his daughter. It isnt that he doesnt have time to go, it's that the way we have scheduled our homeschooling day. It is only lessons. He comes to her recitals, she comes to his tournaments.
Also, leaving a note in the teacher's mailbox keeps your son a child and does not allow him the opportunity to grow as a father and as an adult. You have undermined his authority over his daughter by being the "parent." You have made him look like a child with a child by leaving a note and interfering. The ballet teacher won't take him seriously, which could be the reason for the remark "actually I am the one responsible." He is probably frustrated that nobody takes him seriously as the child's father.
You are not doing your child any favors in growing up by coddling him so much. No wonder he has an attitude. Inadvertently, by loving too much and making things easy for him, nobody is treating him with the grownup respect he deserves. He has grown up far before his time, and his attitude has nothing to do with "coddling", his attitude has to do with a separate issue which I have chosen not to discuss. I find it frustrating that you have decided he is coddled and has an attitude due to coddling, when you are going from one interaction and don't in fact know us. Again, that must be frustrating for him.
Give him some wings while he is still in your nest so he doesn't flail when he leaves the nest.
Sometimes we parents want to shield our children from the harsher parts of life. But if he is 17, it is now time to let him experience some of the harder choices parents have to make.
And I also agree with kudos for making a great life for your granddaughter.