К предложенным вариантам можно добавить
очереди: создали заказ, добавили в очередь задание с нужной задержкой. Задание срабатывает, помечает заказ и отправляет уведомление. Если заказ доставлен до того, как сработало задание, то задание можно удалить (не все серверы очередей поддерживают).