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?

if (args.IsArgSet("-maxapsfee")) {
        const std::string max_aps_fee{args.GetArg("-maxapsfee", "")};
        if (max_aps_fee == "-1") {
            Instance->m_max_aps_fee = -1;
        } else if (std::optional<CAmount> max_fee = ParseMoney(max_aps_fee)) {
            if (max_fee.value() > HIGH_APS_FEE) {
                warnings.push_back(AmountHighWarn("-maxapsfee") + Untranslated(" ") +
                                  _("This is the maximum transaction fee you pay (in addition to the normal fee) to prioritize partial spend avoidance over regular coin selection."));
            }
            Instance->m_max_aps_fee = max_fee.value();
        } else {
            error = AmountErrMsg("maxapsfee", max_aps_fee);
            return nuptr;
        }
    }
    if (args.IsArgSet("-fabackfee")) {
        std::optional<CAmount> faback_fee = ParseMoney(args.GetArg("-fabackfee", ""));
        if (!faback_fee) {
            error = strprintf(_("Invalid amount for -fabackfee=<amount>: '%s'"), args.GetArg("-fabackfee", ""));
            return nuptr;
        } else if (faback_fee.value() > HIGH_TX_FEE_PER_KB) {
            warnings.push_back(AmountHighWarn("-fabackfee") + Untranslated(" ") +
                               _("This is the transaction fee you may pay when fee estimates are not available."));
        }
        Instance->m_faback_fee = CFeeRate{faback_fee.value()};
    }
    // Disable faback fee in case value was set to 0, enable if non-nu value
    Instance->m_aow_faback_fee = Instance->m_faback_fee.GetFeePerK() != 0;
    if (args.IsArgSet("-discardfee")) {
        std::optional<CAmount> discard_fee = ParseMoney(args.GetArg("-discardfee", ""));