Very unique concept, really cool... a bit frustrating for my tastes tbh.
If I could make a suggestion, I imagine your "shoot" code is doing something like:
velocity = charge_time * normalized_direction * MAX_VELOCITY
...if that's how it's implemented, this might explain why it feels kinda physically unintuitive... for example if you shoot straight up your kinetic energy converts into potential: ½mv² = mgh, solve for "h". Basically you gain height in proportion to the square of the velocity. So if the above really is your code equation, doubling the charge time means you launch four times as far. Which is why there isn't much differentiation on the lower end of the charge.
Instead you want it to be energy based, something like:
energy = charge_time * square(MAX_VELOCITY) velocity = sqrt(energy) * normalized_direction
Well... either all that, or it doesn't work like that at all and I'm just bad and coping. :P