kernel - Fix callout_stop/callout_reset rearm race
* If a callout_reset() occurs while a callout_stop() is running, the
callout_stop() can wind up blocking forever. Change the conditional
to break out of the processing loop to simply wait for the IPI to finish
executing, and if the callout is still armed due to a callout_reset()
the callout_stop() simply loops back to the top and retries the stop.
* Can be reproduced when itimers are used heavily (typically ghc processes
that run during a bulk synth run).
* Race tested and verified to occur, fix appears to solve the problem.