The problem I see with this code is that you use EACH_SIDE_OF_FOCUS_AREA for both X and Y dimensions. You're returning a square in camera coordinates, but because the camera screen an the camera sensor are both rectangles, that maps to a rectangle in real-world coordinates.

I think instead you need to define a radius in pixels and then map that into two different vertical and horizontal camera coordinate values for the focus area. That way you can return a rectangle in camera coordinates that maps to a square on the screen.  (And you can make half of the square side length match the radius of the on-screen focus ring.)