I have a hard time believing Matthews doesn't sign a 8 year, 10+ million extension this coming summer.
For Matthews to not sign a long term contract, especially if there are injury concerns in favour of a shorter term deal to take him to UFA on the off chance he might get better offers in 4 years time is rather ridiculous. His agent will highly recommend he cash in on the long term, guaranteed pay day.
Relative to the OP, the only way I see MacKinnon as the absolute best option is if there is some form of salary cap. Otherwise, MacKinnon has hit his prime and Matthews is getting there - depending on the other keepers and if you're in a win now window vs a retool/rebuild that's going to be the tipping point for me.