Run initFn once. Concurrent calls share the in-flight promise. If
initFn rejects, the cached promise is cleared so a subsequent call
starts fresh — callers can retry without constructing a new instance.
The work to run at most once. Returning a rejected promise allows the next call to retry; resolved means "done forever".
Force a fresh initialization next time. Mainly useful in tests; in production callers should let the retry-on-failure path handle reset.
True once
ensurehas resolved.