Yeah, something like that might be the way to do it. Cut off old licenses from new versions but leave it functioning indefinitely with old versions. Offer a paid upgrade option. I think I like that option.
Always seemed like a fair system to me as well. You're paying for a year of updates, then after that it'll continue to work and receive security-critical updates, but you won't get the new features. Of course, it's possible to totally plan features out over the years to encourage people to upgrade, or e.g. Hold back something many have wanted in order to release it with the next big version where people would get cut off, but alas.