StaleUtxo
data class StaleUtxo(val failedUtxoIds: List<String>, val reason: String = "Some UTXOs were already spent. Wallet is syncing to get latest balance.") : TransactionSubmitter.SubmissionResult
Transaction failed because UTXO was already spent (stale local data).
Recovery:
Mark failed UTXOs as SPENT in local database
Trigger background resync for this address
Update UI with new balance
User can retry with remaining UTXOs