With all these ways to cheat, proposing a new way to fix it should be something we think about as well.
Machines aren't gonna go away, nobody wants to wait weeks for results.
Machines should scan ballots, to image, and the image should be public.
Everyone can see the ballots and count them if they choose to.
Ballots should be serialized and when you're given a ballot you should get a receipt for that ballot.
If you want to check your ballot online, you can go and look it up, see how it was scanned and also see how your vote was cast.
Machines shouldn't be doing magic and spitting out numbers. I wanna see the ballots as an image and I'm sure theres plenty of ways to process images with different programs to come up with results.
If everyones program comes up with the same number, then we can agree.
I still worry about the details. Imagine that you have many ballot counters. When the first ballot is selected a vote count for several positions will need to be incremented. How exactly should a person do that? They won't be able to keep the totals for all the candidates for all the positions on the ballot in their heads.
I thought about a simpler system (which also has issues) where each position would have a separate ballot. Then you could just split the votes into piles. They would be quite simple to recount and check, if necessary.
You still need a safe way to combine the totals because 10,000 votes for candidate "A" could be counted but when reporting back to the county/state that could be reported as 5,000 votes.
Perhaps your ballot is different than in my country. Here it is very low-tech. For general elections, the ballot contains all parties with all their candidates. (I remember one year when we had around 20 parties, the ballot was almost 1 meter long)
You are allowed to place your X (one only) at either the party itself, or on a specific candidate.
The first thing the counters (and witnesses) do is sort into piles, one for each party and one for the illegally marked. When they agree, the totals are sent to the department of interior.
Our elections start at 8 AM and ends at 8 PM. By around 11 PM, we usually have the first national result (all by manually counting) and know which parties got in and how many seats in the Parliament they got.
Next morning they start to do the fine counting to determine which individual candidate gets in. When that is done and approved, the list of all tallies for each voting place in the country is published in the two largest newspapers. Everyone involved now has a chance to see if the numbers they reported are the ones published. If no one complains within a certain number of days, the election results are official.
Checks & balances...
I come from the UK and our ballots are quite simple but a US ballot is much more complicated. It is not possible to put different parties in different piles because there are many elections all happening on the same ballot.
I agree that one election per piece of paper is the most direct option but that would mean getting many sheets of paper in the US. Also, I believe they can have an option to vote down the ticket for one party which would make the multiple sheet approach problematic.