If I have a RK method $y$ of order $p$ and a RK method $z$ of order $p-1$ I have read I can estimate the local error as $r_{n+1} = y_{n+1} - z_{n+1}$. First of all I don't see how this estimates the local error defined as the error we make in a single step using correct previous values. What does a lower order method have anything to do with previous correct values? I can accept that this is the error we make using a lower order method instead of a higher order method, but what is the relevance of this?
Further, I read that the step size should be updated like $$h_{n+1} = \left( \frac{TOL}{r_{n+1}}\right)^{\frac{1}{p}}h_n.$$ But I don't understand why this would work since we update our step size so that $r_{n+1} = TOL$, this would just result in $h_{n+1} = h_n$ after a while. What am I missing?