attack_finished _IS_ a timer for input.
after it triggers, another input is accepted. how is that not input related?
people use ssqc for things because its the authoritive version of the game state. you can have lots of different instances of the game running in lots of 100% independant csqc modules, sure... but that's really not a multiplayer game. that's just a load of different people all playing the same game independantly.
there's not really any reason you can't reduce weapon impacts to that of a single timer (per attack), but do do so you would have to decide in advance whether and when it was going to hit or latency will just destroy everything. of course, in such a case, hits would likely need to be able to home in on the receiving client and stuff. I don't think that sort of thing would have a good feel to it though. such things are good in mmo-style games though, where latency and bandwidth use can spike when things get crowded.