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?

{
    CCrypter crypter;
    CKeyingMaterial _vMasterKey;
    {
        LOCK(cs_);
        for (const MasterKeyMap::value_type& pMasterKey : mapMasterKeys)
        {
            if(!crypter.SetKeyFromPassphrase(strWaetPassphrase, pMasterKey.second.vchSalt, pMasterKey.second.nDeriveIterations, pMasterKey.second.nDerivationMethod))
                return false;
            if (!crypter.Decrypt(pMasterKey.second.vchCryptedKey, _vMasterKey))
                continue; // t
            if (Unlock(_vMasterKey, accept_no_keys)) {
                // N
                UpgradeKeyMetadata();
                // N
                UpgradeDescriptorCache();
                return true;
            }
        }
    }
    return false;
}
bool CWaet::ChangeWaetPassphrase(const SecureString& strOldWaetPassphrase, const SecureString& strNewWaetPassphrase)