Returns a tuple: [action, retryState] where action is a new AsyncAction
that retries on failure, and retryState exposes attempt/retry signals and
a state: CngxAsyncState for feedback system integration.
Composes naturally with CngxAsyncClick and CngxActionButton: