After little more research and testing I found a solution. I believe that converting from geography to geometry is what is messing it up. Geometry is a flat 2d surface, so when you draw a circle and then re-project back to WGS84, the polygon is getting stretched. rbrundritt does a better job of explaining why in his answer below.
I am using the circle as a highlight for a selected marker, so spatial accuracy was not the goal, aesthetics was.
My solution was to use a different overload of the ST_Buffer function:
geography ST_Buffer(geography g1, float radius_of_buffer_in_meters);
You cannot, unfortunately, specify the number of segments.