Of the choices listed, weakening the teachers' unions is the most effective one. Firing incompetent teachers comes second. Online education can also improve education.
For public schools, considering how wasteful they are, longer school days and years, higher salaries, and more funding are just throwing money away. We can already observe this by comparing the heavily funded Washington D.C. schools with poorly funded schools elsewhere.
The most effective way to improve education is a separation of education and state--in other words, privatization of all education. We all know, or should know, that private and home schooling are far superior to the government-run variety. And the cost per pupil is far less.
So why keep throwing money into the dumpster of government-run education? Do you want your children to be pawns for the state and the teachers' unions?
Why not demand an effective way to improve education? Chop off the heads of the teachers' union hydra and use half the money spent on "public" education to provide far superior educations for everybody.