Unvote links last for an hour. This is because the main use of voting data is to rank posts, and that's time sensitive. If we let people go back and unvote after hours have gone by (let alone years), that would be rewriting history, or counterfactually messing with it.
Even an hour is arguably too long. Since the main purpose of this feature is to correct misclicks and over-hasty impulses, a few minutes would probably be enough.
An hour provides enough time for the edit to happen, and for you to see it and change your vote.
If this is not a target use case and you only want people to be able to undo misclicks, then 5-10 minutes may be adequate.
Guess I was wrong. I'd say 30 seconds should be enough, with this thought in mind =]