Good breakdown. One concrete thing to add on the tax side, because it is exactly what you are paying for with a merchant of record: digital products and SaaS are taxable in Canada, and the rate depends on the buyer's province. Take a \(100/month subscription. That becomes \)105.00 in Alberta or BC (5% GST), $113.00 in Ontario (13% HST), and $114.95 in Quebec (5% GST plus 9.975% QST, calculated on the pre-GST price, not on top of the GST). Get the province wrong at checkout and you either overcharge the customer or under-collect and eat the difference.
That is the calculation a merchant of record abstracts away for you. If you go the Stripe route for control, you can automate it yourself by calling a tax API at checkout instead of hardcoding rates that change. For example, the TrueNorth API has a calculate-tax endpoint covering all 13 Canadian provinces and territories, plus address validation so the province lookup is accurate. The free tier is 10 calls per day, so it is cheap to prototype. Once the math is automated, the control of Stripe is genuinely worth it.