The thing I would do when working with such a data-intensive signup workflow is simplify what the user sees, then send a backend workflow request and process server-side over the next minute.