My suggestion is a combination of several earlier posts, it runs like this:
Ammo counts can remain approximately the same as the current implementation or perhaps perhaps lower, but no less than 50% current maximum.
After 5-10 of seconds of not firing a weapon will have "Cooled down" and then begin a reload. After 1-2 seconds "Relaoding" a "chunk" of ammo 5-20% of max capacity will be added to the ammo count. This takes place regardless of how full the magazine is.
This will repeat until the weapon is fired, or max ammo count is reached. This is checked per weapon, independently of groups. Whilst the weapon is "reloading" it may still fire, and this will not interupt that particular reload, but no further reloads will take place until after the next "Cooldown". Reloading can take place when venting, but will take palce at a 50% slower rate
This should allow for a ballistics armed ship to fight indefinately, provided it has sufficient breaks between engaments, but if it is continuously surrounded or engaging the oposition it will run dry, forcing a loss of firing time to reload at some point, and making a retreat to re-arm a meaningful decision in large engagements, without encourgaing kiting to much, it would also allow say a conquest to "switch broadsides" to re-arm, if the enemy fleet is slow enough.