I have not run your code, but the essential problem appears to be that your WCS coordinate scales are defined incorrectly. You’ll note that your image doesn’t actually have a FOV of 30 deg, but something far smaller. You are plotting everything in radians, and you set the plot limits in radians. However, WCSAxes works in pixels, so you need to define CDELTi to be 1 radian per pixel. That is, instead of:
wcs.wcs.cdelt = np.array([-FOV / 360, FOV / 360])
you need to have (with CDELTi being in degrees):
wcs.wcs.cdelt = np.array([-180 / np.pi, 180 / np.pi])