Slow sampling of signal and averaging over n periods
Accuracy is independent of the sampling frequency and frequency, as long as your signals frequency is smaller than half of the sampling frequency. In the noiseless case its also independent of the number of periods.

Your calculation of the mean of the sample values has no connection to calculating the amplitude of the signal. To calculate the amplitude one would normaly use a DFT.

Here is a sample Matlab code using your examples, and showing that both give the same amplitude:

x1 = abs(fft(cos([0:pi/2:3/2*pi])));
x2 = abs(fft(cos([0:pi/2:3/2*pi]+pi/4)));


Both signals show the same amplitude (which must be scaled properly to get the exact value).

In the case of noise, using multiple periods is kind of averaging, where the following rule holds (for uncorrelated noise): doubling the number of averages (periods) gives 3 dB more SNR (signal to noise ratio).