Start provisioning for a new customer. Returns the pre-minted cust_… id
immediately — the workflow itself is fire-and-forget, so the caller can
deep-link to the customer's provisioning view before any row exists.
Functional (non-throwing) on a Temporal failure: onboarding is operator
initiated and retryable, so a broker outage is a ONBOARDING_START_FAILED
the caller can surface and offer to retry, not an exception.
Starts customer onboarding. The only supported entry point into
createCustomerWorkflow.Callers used to reach for
temporalClient.workflow.startdirectly and mint the customer id themselves (the admin-dashboard create action did exactly that). Both of those are the workflow's own concerns — the id IS the idempotency key — so they live here instead.