This is something that bugs me as well, and there are a few workarounds.
First: Give the medigun the range of the fire axe. This will make it easier to heal teammates who are running in the same direction as you
Second: In the event that no target is in the medigun's hitscan path, have it check for acceptable targets within a short distance of the hitscan path and pick either the closest one to the player or the closest one to the path. If the engine allows it, look back to the frame that the player would have been acting on and check what the target would have most likely been. This allows for lateral hitbox shifts to not hamper targeting.
Third: Fix the hit detection system. That may sound vauge, but I keep finding myself in situations where the medigun either won't fire or won't work when: I am stationary, my target is stationary, my target is injured, my target is not being otherwise healed, and my target is another player. Sometimes jumping and aiming down at them fixes the problem, but other times it does nothing or causes it to go from 'no target' to 'animation fires but it's a dud'.
As far as multi-heals go, either the healing action should be rejected fire when a person is being healed by a third party, or the heals should stack.
Shooting blanks and reloading can be solved with a simple hack; let the stabbing animation fire, and wait for the server to respond before queuing up the reload animation. If the server says that the heal worked, then fire the animation. If the server says nothing, says it failed, or responds after the stab animation is completely finished (and it would cause a delay before the reload animation) then skip the reload animation completely. If the stab worked, even if the reload animation was skipped, then fire a 'Thanks for the heal' sound a few decibels higher than normal centered on the player to provide a distinct the success cue, and don't let them re-use the medigun until the reload time elapses.
That way the worst you would get is a reload animation that bugs when latency is high, but considering how many other things bug when the pings get high I wouldn't consider that much of an issue.
However, you might want to consider changing the medigun stab animation. Speed the stabbing part up, then have the medigun eject and replace the needle (I'm thinking retract the needle, have a short grinding sound, then kick an obviously-dulled needle out the side. Or stick a three-color "Ready/Replacing Needle/Changing Cartridge" light on the back, keep the grinding sound, and just follow it up with the tiny plink sound of a used needle falling into a storage bin). That would add maybe a second to the animation - long enough so pings could get to be ~400ms or so without having the reload animation skip, but short enough that it doesn't irritate the player too much.
It would also make it so that players weren't going around sharing needles like AIDS-riddled junkie hobos, and bring up the lesser 'Fridge Logic' question of "where do all these needles come from?", with the obvious answer of "Where the bloody hell do you think? It's got a bunch stored inside! Why did you THINK it was that large, you mindless git?"