Very interesting approach, but I wonder why use geometry to get cones? Why not just fill quads and do distance (sqrt) to center in a fragment shader? That would not even need an approximation but be exact.
If you fill quads, you won't get to use the depth buffer to occlude fragments easily. GPUs can do a lot of depth buffer optimizations before they run the fragment shader.