I maintain an open source library that internally uses exceptions during a recursive method call. The exception is taken back on the call stack and in some cases handled, while
I don't believe there is any way to prevent "Halt on All Exceptions" from doing exactly that.
Is there any way to prevent that from happening other than telling users to disable that setting?
Only by avoiding using exceptions for non-error handling purposes (from your description, it almost sounds like your library is breaking this guideline).