WFA has some code in there that was tweaked in the beginnings to do just that, keep the clocks synced.
One thing I looked at was the level time and the func_rotating ents, specifically the clock I stuck in cancer3.
I just spent a couple of hours doing sorta what you did; ray traces for damage and "syncing" the client-side effects. It seems to work, and all I did was borrow from some of the laser-defense code and plasmabomb code, and the movers code to keep it all in sync.
I'll post a video of the final product once it's done. Yea, it's just a grenade, but it switches "types" like a mini-turret to stop, rise, and then start slicing and dicing.
The thing is that I ported the damage right over from q2wf, and there was less of a chance that it would hit the target. This thing now, with the optimizations, is too difficult I think at the damage it hits with and how smooth it is.
In the example above you'll see two lines: server-side (slowed down to 10fps) and client, so you can see that they are actually synchronized.