The ZLE widget added in #13710 saves the current Tab binding and
delegates to it. If the plugin is sourced more than once, the saved
binding points to the widget itself, causing infinite recursion and
"maximum nested function level reached" errors on any Tab press.
Guard against self-reference by only capturing the binding on first
load and falling back to expand-or-complete if the saved value is
our own widget.
Fixes#13714
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The old implementation would attempt to load both the default and custom
implementations, with the custom one coming first, so it would get clobbered
by the default version.