Update: We were able to reproduce this with a minimal reproducible project and can confirm it's the same issue as yours.
the finishTransaction method fails to properly remove the transaction from the SKPaymentQueue
As per our investigations, calling SKPaymentQueue.default().restoreCompletedTransactions() triggers paymentQueue(_:updatedTransactions:), but the transactionState of that previously finished transaction is .purchased instead of .restored.
When running the same test on devices below iOS 26.4, the transactionState correctly returns .restored.
Topic:
App & System Services
SubTopic:
StoreKit