With my son I've noticed this.
The most important thing is consistency. His bed time is sometime around 8:00pm, the closest to that time I send him to sleep works out fine, even if it is a little before. The problems come when we pass the bed time (after 8:15) then it takes longer for him to go to sleep, there is more fights and is more common that he will wake up during the night.
Anything new you try to do will take at least a week to settle in. So take that in mind. You can try to, without talking taking your baby back to his bed, even if it is 25 times in one night. Usually that is only the first time, the following nights is less and less resistance.
It sounds that his routing is already the same every night, which helps. Any time that a kids is overtired or over stimulated his sleep patterns will be more and more difficult. Personally I think that 9:00pm for a two year old is way too late. As always is a matter of choices and what works for you.
I've been there and is so difficult! You are tired all the time because you don't get a full night sleep!
Good luck and Merry Christmas!