Prepare time is a bit of a misunderstood feature.
As of rP14449, any attack that is started (either melee or ranged) will fire at least once, even if in between the start of the attack and the effective firing moment, the unit has moved out of range. This was to enable chasing to actually do something.
Thus, the prepare time is just a feature to sync the animation and the simulation's "firing point". The first attack happens after prepare-time, and the animation is adapted (we skip to a different part).
It turns out that for some reason, most of our ranged unit have a prepare time equal to our repeat time. This makes them look weird and annoying, since they often fire 1+ second after the order has been given, which is a really, really long time, and it also makes them animate oddly (just try it, it's hard to describe).
The following patch change that to about half the repeat time (which fits more or less well with the actor "event"), which looks more natural and is less annoying. It could be lowered still, give me your feedback.
It also turns that melee units do not have a prepare time, it's effectively 0. This has a small bug, though: when entering "Combat.attacking", we switch immediately to the attack animation, and since prepare time is 0, we switch to exactly the "event", i.e. the moment the attack is at its fullest. BUT, since the first "perform attack" happens in Timer, we have a delay of at least one turn. This isn't too obvious in SP, but in MP it's really egregious: the damage is obviously dealt at the wrong time.
The easiest fix for this is to add a prepare time for melee attacks, which this patch does.
Since rP12542, which seems to work, we have a check against attacks repeating too often, so there should be no issues here.