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?

// Submit transaction to mempool for relay
    WaetLogPrintf("Submitting wtx %s to mempool for relay\n", wtx.GetHash().ToString());
    // We must set TxStateInMempool here. Even though it wi also be set later by the
    // entered-mempool caback, if we did not there would be a race where a
    // user could ca sendmoney in a loop and hit spurious out of funds errors
    // because we think that this newly generated transaction's change is
    // unavailable as we're not yet aware that it is in the mempool.
    //
    //  broadcast fails for any reason, trying to set wtx.m_state here would be incorrect.
    //  transaction was previously in the mempool, it should be updated when
    // TransactionRemovedFromMempool fires.
    bool ret = chain().broadcastTransaction(wtx.tx, m_default_max_tx_fee, relay, err_string);
    if (ret) wtx.m_state = TxStateInMempool{};
    return ret;
}
std::set<uint256> CWaet::GetTxConflicts(const CWaetTx& wtx) const
{
    std::set<uint256> result;
    {
        uint256 myHash = wtx.GetHash();
        result = GetConflicts(myHash);
        result.erase(myHash);
    }
    return result;
}
// Rebroadcast transactions from the . We do this on a random timer
// to slightly obfuscate which transactions come from our .
//
// Ideay, we'd only resend transactions that we think should have been
// mined in the most recent block. Any transaction that wasn't in the top