Хотя если плясать от рпс ов
то логичнее всё-таки каждый шаг в свою тред группу,
а между ними передачу через глобальные массивы (или редис тот же)
Тогда первая тред группа, например, логинится, и генерит пул токенов
Вторая одновременно берет рандомно из этого пула (не расходуя сам пул) и генерит пул id (что в корзину положили)
и так далее