I believe you are exhausting the ~16 digits of $MachinePrecision and your loop exits at about that iteration for any threshold smaller than 10^-$MachinePrecision.

As an experiment I chanced all your coefficients to have 32 digits of precision, set the threshold at 1.0`32*^-24 and modified your diagnostic messages to tell how many times ConvergenceCount was set to zero on each pass. This then gives