결제 미처리 주문 복구 프로세스 처리에 대한 질문이 있습니다

using AppsInToss;
using UnityEngine;

public class IAPRecovery : MonoBehaviour
{
async void Start()
{
await RecoverPendingOrders();
}

private async System.Threading.Tasks.Task RecoverPendingOrders()
{
    try
    {
        // 미처리 완료 주문 조회
        var result = await AIT.IAPGetCompletedOrRefundedOrders();

        if (result.Orders == null || result.Orders.Length == 0)
        {
            Debug.Log("복구할 주문이 없어요");
            return;
        }

        foreach (var order in result.Orders)
        {
            if (order.Status == CompletedOrRefundedOrdersResultOrderStatus.REFUNDED)
                continue;

            // 상품 지급
            GrantProduct(order.Sku);

            // 지급 완료 처리
            var args = new IAPCompleteProductGrantArgs_0
            {
                Params = new IAPCompleteProductGrantArgs_0Params
                {
                    OrderId = order.OrderId
                }
            };

            bool success = await AIT.IAPCompleteProductGrant(args);
            Debug.Log($"주문 {order.OrderId} 복구 {(success ? "성공" : "실패")}");
        }
    }
    catch (AITException ex)
    {
        Debug.LogError($"주문 복구 실패: {ex.ErrorCode} - {ex.Message}");
    }
}

private void GrantProduct(string sku)
{
    // SKU에 따른 상품 지급 로직
    Debug.Log($"상품 지급: {sku}");
}

}

결제를 진행하고 도중에 강제로 프로세스를 중단하면 미처리 코드가 실행이 되는 건 문제없었습니다.

그러나 해당 미처리 코드가 매번 앱을 실행할때마다 같이 실행이 되는게 잘못된거 같아서 질문을 드렸었습니다.

공식 가이드에 대하여 제가 이해했을 때는 상품을 지급하는 GrantProduct(order.Sku); 코드에 상관없이 미처리 된 결제가 있었으면 1번만 실행이 되어야 하지 않았나 한건데 GrantProduct(order.Sku)이 실행이 되어야지만 더이상 미처리 주문 코드가 실행되지 않는건가요?