I am very likely working on a faulty understanding of FOV but wouldn't this be much simpler?
Code:
double AngleToHalfScreen = Vertical_FOV/2;
double OffsetFromMiddle = Math.abs(targetY - pixelHeight/2);
double FractionofOffset = OffsetFromMiddle/(pixelHeight/2);
FinalAngle = AngleToHalfScreen+(AngleToHalfScreen*FractionofOffset);
This is way to simple to be right.
Thank you so much for taking the time to explain this.