I had this issue before. From my experience, I had to wait for a few minutes and if the calibration can NOT stop by itself (i.e. it hangs up), I had to force cancel the process and restart the procedure.
I think that the wifi calibration may NOT work perfectly at all times. I do NOT know how to fix this problem, I was just working around it.
Hope it help,
Thanks for the reply. I tried it several times, and it didn't work. However, I was able to do the compass calibration without QGC. I connected to a Nuttx shell following the instructions here https://docs.px4.io/en/flight_controller/intel_aero.html and then started the calibration with the command commander calibrate mag. There's no need to compile and replace PX4, but you need to get the PX4 Firmware code to get mavlink_shell.py. I guess an easier way could be to use the mavlink shell included in QGC.
I was debugging this issue, and I think it's a problem with QGC not getting the message from PX4 reporting that the calibration is done. I couldn't determine why that's the case, but PX4 is sending that message. Since the calibration is done in PX4 and QGC is just presenting a pretty interface for it, the calibration completes even if QGC doesn't report that. That is, when you have gone through all the positions as shown in the screen shot above, the calibration in PX4 is done.