Después de investigar y probar un poco más, encontré una solución. Creo que la conversión de geografía a geometría es lo que lo está estropeando. La geometría es una superficie plana 2d, por lo que cuando se dibuja un círculo y luego volver a proyectar a WGS84, el polígono se está estirando. rbrundritt hace un mejor trabajo de explicar por qué en su respuesta a continuación.
Utilizo el círculo para resaltar un marcador seleccionado, por lo que la precisión espacial no era el objetivo, sino la estética.
Mi solución fue utilizar una sobrecarga diferente de la función ST_Buffer:
geography ST_Buffer(geography g1, float radius_of_buffer_in_meters);
Lamentablemente, no se puede especificar el número de segmentos.