Do not use one loading boolean.
Implement:
IDLE
VALIDATING
UPLOADING_METADATA
METADATA_READY
AWAITING_CREATE_SIGNATURE
SUBMITTING_CREATE
CONFIRMING_CREATE
CREATE_CONFIRMED
AWAITING_INITIAL_BUY_SIGNATURE
SUBMITTING_INITIAL_BUY
CONFIRMING_INITIAL_BUY
INITIAL_BUY_CONFIRMED
AWAITING_SHARING_CONFIG_SIGNATURE
SUBMITTING_SHARING_CONFIG
CONFIRMING_SHARING_CONFIG
SHARING_CONFIG_CONFIRMED
AWAITING_FINAL_SHARES_SIGNATURE
SUBMITTING_FINAL_SHARES
CONFIRMING_FINAL_SHARES
COMPLETE
PARTIAL_FAILURE
FAILED
Skip initial-buy states when no initial buy is requested.