How about periodic testing, once every 6 months? Let previous classes retake a final. That's basically the same test load as before. (Another variation could be only giving partial credit. But it's going to be fairly clear who is trying to succeed and who is trying to game the system. Hence my suggestion of increasing lengths between subsequent testing.)
Also, students are rampantly cheating by leaking previous tests. I saw it every day on campus. TA's leak tests to students and they're printed out before every exam (as the risk is too high to NOT look at a test in advance because your grades = your future in college). I've literally been in classes where everyone had last semesters final printed out... in the room before we took the current final. So the impetus is already currently on you, as a teacher, to have tests with permutations to prevent cheating.
Additionally--while I'm sure many teachers would object--tests shouldn't necessarily be written by the teacher. The teacher isn't teaching their own class, but a class meeting the departments requirements. So if students are being prepared (and not learning very specific permutations of general topics) they should be able to solve problems written by other teachers / test makers. So (on the bright side), teachers shouldn't actually be burdened at all by the testing. That could be someone else's job.
Now, of course, all of this has plenty of practical considerations that would need addressed. How do you permutate a QUALITATIVE question? And how do you easily grade highly permuted (per-person) tests? But just because there are unsolved issues, doesn't mean the underlying (god forgive me for saying using this term:) "paradigm shift" is unsound. It's just different and requires some new solutions to new issues.
But as programmers, we of all people, should be able to figure out how to further automate testing. But I think we really should decouple the idea of "testing" from "occurs at the end of class." I mean, why do we test all finals at the same time during the super-stressful "finals week"? Simply because it's practical. Except it was designed as "practical" before computers and automation were within the hands of every living person. Surely, students would test higher if they could study for a single class's test at a time and without worrying about it occurring during a family or health episode.
And what's a test for except hopefully proving that a student understands the material--but we all know thanks to "teaching to the test" culture that many students can cram for a test and then forget it within a month. But now I'm getting way off the original topic.
My thesis statement is simply: Re-testing finals is practical in modern environments and beneficial and incurs (almost) no additional flaws that the current setup doesn't also exhibit--like cheating.