Unless you go the NCAA route you are kind of stuck until your mid 20s. You become a UFA at age 27 or after 7 accrued seasons, so if you start at 18 the absolute earliest you can be a UFA is 25.
It's not "as bad" as the MLB because there's nos service time clock or manipulation, but you're still "stuck" with your team for a bit.
Any player can become a UFA after 4 years if they don't sign with the team that drafted them not just NCAA prospects. A player that plays in the OHL can refuse to sign with the team that drafted him and re-enter the draft after 2 years, then if they don't like the team that re-drafted them they can refuse to sign with them and become UFA 2 years later. So the 4 year timeline is the same for NCAA and non-NCAA prospects, it's just not worth the while for prospects to hit UFA in this manner as going this route would cost you significant development, money, NHL org experience, not to mention the risk of an injury.
Even with NCAA, other than this guy most players who hit UFA via this route are later round picks and longer term projects who are further behind in development who wouldn't have even been offered a contract until their 3rd or 4th college year and at that point it is much less of a risk for them to wait a few months to hit FA.
The reason we see more NCAA players take this route is mostly due to these lower round "project" type players. If the player played in the CHL, the NHL team has to make a decision on whether they want to sign him after 2 years max, this culls out all the lower end late blooming project types as they are out of the org after 2 years. With NCAA the team doesn't have to offer a contract until 4 years post draft, that's why you see many players who the team didn't think were good enough to offer an ELC after 1 or 2 post-draft seasons who go off in their junior or senior year at which point they are close enough to UFA that it might be worth it for them to go for it.