Interesting – can you quantify these performance issues somehow or do you have any other insight what was happening there?
It surprises me to hear it, because when CloudFront refreshes an item, it should immediately start to forward the retrieved data from the first byte onwards. So, the maximal additional latency could be the initial roundtrip between CloudFront and the origin (which I suppose should be neglectable in case of S3).