Well.... this is 4-years old. Lots of new information, including Trent Williams signing a new 6-year deal this off-season at age 32. Fisher is 2-years younger.
Ballard and his team are aware of the proper age numbers.
From what I read, the second year is voidable in that it is essentially a one-year deal which gives some flexibility in spreading his cap hit over this year and next. It is an automatically voiding second year (he is only under contract to actually play for this year, would need a contract extension to play here beyond 2021).
Regarding how years, Fisher has left as a quality starter, I'd say not many, unless he's an exception. I agree with the article quoted below. Anthony Costonzo, done at 32, is more the rule than the exception.