At 22 years old, Sandin does not have the leverage of salary arbitration, which would have brought this stalemate to an end weeks ago, but to say he doesn't have any leverage whatsoever is a misconception. Sandin only managed to play in 51 games last season due to a knee injury he suffered in mid-March. While healthy enough to play in the post-season, Sheldon Keefe elected not to insert him into the lineup cold in the playoffs. Without getting any game action in before the playoffs, he likely would not have been in "game shape" and would have been more of a liability than anything, so the decision is understandable.
Drafted in the 2018 draft (29th overall), Sandin has been tethered to his fellow countryman Timothy Liljegren throughout their development. Earlier in the summer Dubas said, "They're massive parts of our future. They're significantly younger than the other full-time members of our defense corps. And we need them to continue to take steps." Unfortunately for Sandin, his injury and lengthy recovery prevented him from making more progress last season.
Without the possibility of arbitration, what leverage does Sandin have exactly? First there is the ever-popular offer sheet, which if it hasn't happened by now, it likely won't happen. Teams also do not prefer to sign RFAs to offer sheets as they often cause a rift between GMs.
The second option Sandin has is to not report to training camp, which would align with what William Nylander did in 2018 before he signed his deal. Sandin not showing up to training camp is all but guaranteed as it is very rare for a player to participate in camp without a contract. Thirdly, as awkward as the situation would be, Sandin could hope for an injury, which would put pressure on the Leafs to get him signed. Ultimately, this could force the team's hand and see them pay Sandin more than they might be comfortable with.
Finally, Sandin can hold out until the December first deadline, again following in Nylander's footsteps. The longer Sandin holds out, the worse of a position he puts the Leafs in as his cap hit for the season will increase with each passing day - as we saw with Nylander in 2018.
Both sides should want to resolve the stalemate before the season, as it will help the Leafs in cap management and it will help Sandin keep pace with the rest of the team and league in terms of "game shape" to avoid him being put in a position again where he's forced into the role of 7th defenseman.