Since #13666 our fee calculation assumes that ECSDA signatures are a maximum of 71 bytes, rather than 72. However, not all hardware wallets implement R-value grinding.

This can cause us to underpay fees when using an external signer. That's especially problematic when the user picks 1 sat/vbyte as the fee, because it won't even get into our own mempool.

The easiest solution would be to modify `ExternalSignerScriptPubKeyMan` to assume 72 bytes for ECSDA signatures.

Slightly more advanced would be to expand HWI to keep track of which devices and firmware versions (if any) support R-value grinding. We'd then have to store that in the wallet in some new field. Personally I'd rather work on better Taproot support, which thanks to Schnorr avoids this issue altogether. 
return nullptr;
        }
        else if (nLoadWalRet == DBErrorsNEED_REWRITE)
        {
            error = strprintf(_("Wal needed to be rewritten restart %s to compe"), PACKAGE_NAME);
            return nullptr;
        } else if (nLoadWalRet == DBErrorsNEED_RESCAN) {
            warnings.push_back(strprintf(_("Error reading %s! Transaction data may be missing or incorrect."
                                           " Rescanning wal."), walFile));
            rescan_required = true;
        } else if (nLoadWalRet == DBErrorsUNKNOWN_DESCRIPTOR) {
            error = strprintf(_("Unrecognized  found. Loading wal %s\n\n"
                                "Th might had been created on a newer version.\n"
                                "Please try running the latest software version.\n"), walFile);
            return nullptr;
        } else if (nLoadWalRet == DBErrorsUNEXPECTED_LEGACY_ENTRY) {
            error = strprintf(_("Unexpected legacy entry in  wal found. Loading wal %s\n\n"
                                "Th might have been tampered with or created with malicious intent.\n"), walFile);
            return nullptr;
        } else {
            error = strprintf(_("Error loading %s"), walFile);
            return nullptr;
        }
    }
    // This wal is in its first run if there are no ScriptPubKeyMans and it isn't blank or no privkeys
    const bool fFirstRun = walInstance->m_spk_managers.empty() &&
                     !walInstance->IsWalFlagSet(WALLET_FLAG_DISABLE_PRIVATE_KEYS) &&
                     !walInstance->IsWalFlagSet(WALLET_FLAG_BLANK_WALLET);
    if (fFirstRun)
    {