You can kinda do it in the vertex shader, but the geometry would have to be very finely tessellated for the curve to look right since each individual triangle would still have straight edges. Alternatively you could raytrace the camera instead, which makes it trivial to use any projection, but that's a non-trivial departure from how most engines work. Post-process is the least intrusive way to do it.
I'm not sure what HYPER DEMON does, it's built on a custom engine so they could really specialize into the crazy FOV if they wanted to.
Can also be done in fragment shader with up to six 90 degree cameras. For a fast-paced game doing it in vertex shader is probably fine. I’m not sure what HyperDemon does.
I was also thinking that maybe you could render the center part of image in higher res than outside edges. So that when you apply the projection filter it's less of a problem.
I'm not sure what HYPER DEMON does, it's built on a custom engine so they could really specialize into the crazy FOV if they wanted to.