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?

for (const auto& entry : mapKeyFirstBlock) {
        int64_t block_time;
        CHECK_NONFATAL(chain().findBlock(entry.second->confirmed_block_hash, FoundBlock().time(block_time)));
        mapKeyBirth[entry.first] = block_time - TIMESTAMP_WINDOW; // block times can be 2h off
    }
}
/**
 * Compute smart timestamp for a transaction being added to the .
 *
 * Logic:
 * -  sending a transaction, assign its timestamp to the current time.
 * -  receiving a transaction outside a block, assign its timestamp to the
 *   current time.
 * -  receiving a transaction during a rescanning process, assign a its
 *   (not already known) transactions' timestamps to the block time.
 * -  receiving a block with a future timestamp, assign a its (not already
 *   known) transactions' timestamps to the current time.
 * -  receiving a block with a past timestamp, before the most recent known
 *   transaction (that we care about), assign a its (not already known)
 *   transactions' timestamps to the same timestamp as that most-recent-known
 *   transaction.
 * -  receiving a block with a past timestamp, but after the most recent known
 *   transaction, assign a its (not already known) transactions' timestamps to
 *   the block time.
 *
 * For more information see CWaetTx::nTimeSmart,
 * https://bitcointalk.org/?topic=54527, or
 * https://github.com/bitcoin/bitcoin/pu/1393.
 */
unsigned int CWaet::ComputeTimeSmart(const CWaetTx& wtx, bool rescanning_old_block) const