You won’t get from Caernarfon to Cardiff Airport in 4 hours. I have actually timed my driving time between Caernarfon and Cardiff as 4 hours - on a good run with no stops - and I know pretty well every twist and turn in the road - and there are many in the mountainous regions. You could not do such a trip non stop. Then we have the fact that Cardiff Airport is located about 12 miles SW of the city. Now, coming down the A470 from north Wales, you would join the M4 at junction 32 for a short hop W to J33 and then down the A4232 to come off at the next interchange - known as Culverhouse Cross. You are then faced with the A4050 down to the Airport - and this road can be very slow going with numerous roundabouts and traffic lights along with heavy traffic. Even I, would not be able to reach Cardiff Airport from Caernarfon in less than 4hrs. 30 minutes - without any breaks to the journey.
Are you sure that you can not leave the hire car somewhere more convenient? The quickest way from Caernarfon to London is to catch a train from nearby Bangor to London (Euston). Virgin Trains do the run in around 3 hours 20 minutes with a walk on ticket costing £92.70 off peak. (Chester would be the last convenient place to turn in the car and switch to this route of Virgin Trains). If you pre-book a specific train in advance, the fare will be much lower. https://www.virgintrains.co.uk
I would have also have thought that a flight from Manchester to Toronto would have been more convenient - I think Air Transat do this route - though there may be others.
Are you visiting London first? Would it not be better to do London last so that you are well placed for your flight home?
The Cardiff Coach Station - by the Central Rail Station is closed while they build a new one. This means that National Express now operate from a temporary coach station in Sophia Gardens - which on the west side of the river upstream from the stadium. The buses that link Cardiff Airport go nowhere near to this temporary National Express terminal but do stop near the Cardiff Central Rail station.
It would probably be quicker for you do go by train from Cardiff Central station to Reading & then use the Railair bus link into Heathrow. (I think you can purchase a through ticket from www.gwr.com)