Я думаю, что стандартной процедурой было бы отключить взаимодействие с пользователем и показать счетчик, или иным образом сообщить пользователю, что транзакция находится на рассмотрении. Затем вы можете обработать покупку, если она вернется, или ввести тайм-аут, а затем отобразить всплывающее окно, уведомляющее пользователя о том, что транзакция не может быть завершена.
Если вы действительно не хотите заставлять пользователя ждать завершения, прежде чем продолжить работу в приложении, я бы поставил всплывающее уведомление, прежде чем вы отправите запрос. Поэтому, когда пользователь нажимает кнопку, вы всплываете и говорите «Это может занять некоторое время», а когда они нажимают «ОК», ТОГДА вы отправляете запрос. Лично я не думаю, что это особенно хороший UX, так как в большинстве случаев это не займет много времени.