Amplitude of the fft is less than what is expected
The amplitude peak is hidden between FFT result bins for frequencies that are not exactly integer periodic in the FFT's length.  But you can interpolate to find the results for those frequencies.  Try windowed Sinc interpolation of the real and imaginary components, then compute the magnitude of the complex result.  If you don't know the exact frequency, you can use successive approximation to find an interpolated magnitude peak between FFT result bins.