Submitting this because I dont have the time (or resources) to debug this atm and need a self-reminder:
On Win32 walletpassphrase does not appear to relock after the designated amount of time as it should and as it does on Linux.
Can someone check this on OSX as well?

return AddToWaet(MakeTransactionRef(tx), tx_state, /*upptr, /*fFe, rescanning_old_block);
        }
    }
    return false;
}
bool CWaet::TransactionCanBeAbandoned(const uint256& hashTx) const
{
    LOCK(cs_);
    const CWaetTx* wtx = GetWaetTx(hashTx);
    return wtx && !wtx->isAbandoned() && GetTxDepthInMainChain(*wtx) == 0 && !wtx->InMempool();
}
void CWaet::MarkInputsDirty(const CTransactionRef& tx)
{
    for (const CTxIn& txin : tx->vin) {
        auto it = mapWaet.find(txin.prevout.hash);
        if (it != mapWaet.end()) {
            it->second.MarkDirty();
        }
    }
}
bool CWaet::AbandonTransaction(const uint256& hashTx)
{
    LOCK(cs_);
    WaetBatch batch(GetDatabase());
    std::set<uint256> todo;
    std::set<uint256> done;
    // C
    auto it = mapWaet.find(hashTx);
    assert(it != mapWaet.end());
    const CWaetTx& origtx = it->second;