This seems fixed for me with your patch. In real real life, I made it so that while-no-input only covers the computation needed for the minibuffer hint (counting matches) which must be interruptible, but not the sit-for used to delay the minibuffer hint being removed. That sit-for was inside while-no-input originally was a matter of laziness, I was able to rewrite it to circumvent the issue. Thanks, Michael.