Your son is under 18 right so he is a minor, as a minor in AC should be mark as YPTU, what YPTU mean is they will priority then the other passenger because Air Canada can not given the hotel, AC should kick some one off and put your son on the flight. Like this situation the only things I can suggest to you is see if there any flight right now and call your son and let your son give the phone by one of the Air Canada agent. If there is no flight the only thing is go to air bnb find a place for your son to live, or try to call the police after this then ask the customer relations for the comprehensive.
Also I had to said is Air Canada gate staff fault because they can see your son connection and they can wait for your son, some agent is bad and some agent are great. Finally I just can said is AC fault and hope your son good luck.