Position hold doesn't work, navigation works well

The EKF consistency checks are all good, although the velocity innovations are 0 until the EKF_CHECK-0 message. I take this to mean the EKF simply had not finished initializing by the time you took off. It took a while for the EKF to learn the gyro Z bias, which may have contributed to the long initialization time. Generally it does not take so long, was this the first time you flew after setup or calibration?

Anyways, I don’t expect this to be a problem in the future. One thing you might want to check on is your vibrations - they are good for the first half of the flight, but sometimes go quite high.

In case it happens again, this situation can be avoided by trying to arm the copter in a GPS mode such as PosHold. If the EKF isn’t settled yet, it will just refuse to arm. That way, you can know for sure if you’re ready for GPS flight.