switch to a stateful conversation protocol with separate try next/reduce range and retry hash commands to improve efficiency and so that we can differentiate between moving on and cutting down the range and trying again