эта шляпа, м то есть модуль, действительно никак не обрабатывает возврат клиента. В поддержке сказали что никакого ответа на server_url не поступает при отмене платежа клиентом по кнопке на ликпее уже.
Вообщем я сделал так:
1) убрал автоматическое изменение статуса заказа в ControllerPaymentLiqpay::confirm() (по сути вообще закоментил код этого метода, только лог добавил, что "клиент перешёл к оплате на ликпей"). То есть заказ висит в 0 статусе до запроса на server_url от ликпея (если таковой произойдет вообще (он произойдет в любом случае, кроме нажатия на странице ликпея "Отменить оплату"), а это нам и нужно)
2) в качестве result_url добавил вызов нового метода ControllerPaymentLiqpay::waitForResponse() В нем выдается страница заглушка со спиннером и "обрабатываем платеж". В ней после 2 секундного таймаута идет ajax запрос который получает url перенправления в зависимости от значения order_status_id висящего в сессии заказа. Думаю, 2с более чем достаточно, чтобы ликпей отправил свой POST запрос на наш сайт с указанием статуса платежа, если статус success, то там мы переводим заказ в нужный статус, а значит наш ajax запрос получит линк на "checkout/success", в ином случае (например таки, юзер отменил платеж и вернулся на наш страницу waitForResponse, когда статус не изменился) линк будет на "checkout/success"
Возможно, не самый лучший подход, но он работает (пока тестим еще). Позже попробую сделать pull request в ветку с этим модулем (только под 1.5 версию), мб смерджат