There is an hard coded cut in hadrElastic process : recoil nuclei is not generated below 1 keV Consequences : 1- momentum conservation is broken 2- users cannot identify a specific nuclear channel
Except for neutrons, we have no hadronic models that are valid below 1 keV and so the initial projectile and target are simply returned with no interaction in that case. As Vladimir mentions in the code for G4WHadronElasticProcess::PostStepDoIt, very low energies cause numerical problems. So, until we have very low energy models for particles other than neutrons, this is the best we can do.