Adding this code...
Produces the following output consistently when it gets stuck.
A bunch of these...
[00:57:44] src/constraint_solver/search.cc:314: RoutingSolverTrace BeginNextDecision(ComposeDecisionBuilder(RestoreAssignment, LocalSearch))
[00:57:44] src/constraint_solver/search.cc:318: RoutingSolverTrace EndNextDecision(ComposeDecisionBuilder(RestoreAssignment, LocalSearch), Decision)
[00:57:44] src/constraint_solver/search.cc:324: RoutingSolverTrace ApplyDecision(Decision)
[00:57:44] src/constraint_solver/search.cc:330: RoutingSolverTrace AfterDecision(Decision, 1)
Then three lines like this...
[00:57:44] src/constraint_solver/search.cc:314: RoutingSolverTrace BeginNextDecision(ComposeDecisionBuilder(RestoreAssignment, LocalSearch))
[00:57:44] src/constraint_solver/search.cc:318: RoutingSolverTrace EndNextDecision(ComposeDecisionBuilder(RestoreAssignment, LocalSearch), NestedSolveDecision)
[00:57:44] src/constraint_solver/search.cc:324: RoutingSolverTrace ApplyDecision(NestedSolveDecision)
And then nothing.