Idea for the timer problem:
Use a minecart (since they update instantly and save velocity now) such that if the timer ever stays off or on for too long, the minecart goes by a detector rail and updates it. I still have to make such a design, but thats the theory, we'll see if it still has a problem.