Fixing the AMM imbalance might be acheived by removing Missile Agility entirely. The increasing engine power at higher tech levels should keep missile hit chances versus ships reasonable, but missile v missile numbers would drop considerably. It also has the added benefit of no longer needing an Excel sheet or Python program to calculate (efficient) new missile designs.
Yes, I think might be the simplest answer, plus probably making engine boost modifiers cheaper or maybe even free to improve low-level AMMs.
Based on my napkin math, we should be careful about changing the AGI values.
TLDR: giving agility tech a higher starting value and a lower growth speed might be enough nerf for high tech missiles.
I experimented with some adjusted AGI tech levels. It seems to me increasing the starting value, and slow the growth down looks reasonable (at least for AMM, where warhead keeps shrinking with tech levels).
They also only holds for the situation where warhead strength is kept constant (so warhead size keeps shrinking). For other types of missiles, I expect their tracking capabilities does not grow as significantly as AMMs. For example, this table shows if the warhead is kept 0.2MSP (20% of the total missile size), the growth of the tracking with the same new AGI tech values as above. It might be good enough for a light anti-ship missile, but probably not good enough for anti fighter/FAC roles.
Below is a chart comparing different scenarios. I included some rule of thumb ship speed (slow = EP/HS rating x 250, fast = EP/HS rating x 500, fighter = EP/HS x 1000) for comparison.
Note that with adjusted AGI values, S1 missiles with 0.25MSP ECCM and 0.2MSP warhead can barely track the fighter speed of equivalent tech. Given this is the theoretical max value, S1 might not be a good missile size for anti-fighter role any more.
Zoomed in to lower tech levels:
Giving engine boost tech to missiles at lower tech levels will definitely bring their performance on par with beam weapons.
Keep in mind that the numbers shown above are theoretical max values, meaning 0 fuel, max engine boost, and maximizing tracking speed by adjusting engine/AGI ratio. Thus in both VB6 and C#, the practical values will decrease (except for rounding errors on very short ranged missiles). The decrease will be more significant in C# due to max boosted engines consume more fuel. In fact, based on the ship/missile optimizer I created based on C# formulas, max boosted engines are not the optimal choice for even very short ranged missiles. Thus in C# the practical performance will definitely be lower than these values.