Welcome to online games. I can fix it but i need 1 billion dollars to make sure the entire world runs on fiber optic one-line connections straight to everyone's doors. Fuck routers and all that jazz, everyone gets a fiber to everyone else so there are never any delays besides that pesky speed of light thing.
Hit detection is never going to be better then what it is now unless we switch engines. Valve's netcode isn't the best, but I tried my hardest to make it so.
There is also a lot more to games then lag. People who complain about lag don't know much about what is involved. You can have 50 ping and still have problems communicating with the server, your ping is just HOW FAST your comms are to and from the server. Each server sets what is called a tic-rate which is how often they send updates to the clients. If the tic-rate is low you receive less updates. So when it may look like you hit the person in the face, on the server it calculated differently. The more players there are in a server the less updates you'll get personally because all the other players want updates too you know. So, like I said, unless the server has a fibre connecting individually to every client there is no way around this problem.