4 is always better than 3. If you can get bags checked through, you can go straight to U.S. preclearance with a quick stop at Canadian immigration which should not take more than an hour. If not, allow 90 mins to clear into Canada (should be more than sufficient 97% of the time), and 2 hrs for U.S. preclearance should be enough unless it is cruise ship season and your transit days coincides with a large ship or several (flights after 10/11 would be busy, and there may be traffic from previous days. .