You’re decreasing the precision to really low levels (the default
in the original implementation was 1e-8) which causes really
inaccurate solves that immediately obstruct the validity of the
Metropolis correction. In other words, the transitions are
corrupted by noise and you end up getting stuck in the tails
instead of moving towards the typical set. The adaptation
tries to compensate the only way it knows how, by decreasing
the step size, but because the inaccuracies are not due to
HMC integrator error this doesn’t do anything and you get stuck
in a loop where the step size goes to really small values.
Lesson: nothing good happens when you try to make things
faster by sacrificing accuracy. Unless you have extreme
simplifications (i.e. everything is Gaussian), high-dimensional
problems are too fragile and the only hope you have is to do
things correctly.
If that means that your model runs too slowly then you have
to limit the scope of your model to something that will run in
the required time.