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?

{
                LOCK(->cs_);
                if (->IsWaetFlagSet(WALLET_FLAG_DESCRIPTORS)) {
                    ->SetupDescriptorScriptPubKeyMans();
                } else {
                    for (auto spk_man : ->GetActiveScriptPubKeyMans()) {
                        if (!spk_man->SetupGeneration()) {
                            error = Untranslated("Unable to generate initial keys");
                            status = DatabaseStatus::FAILED_CREATE;
                            return nuptr;
                        }
                    }
                }
            }
            // R
            ->Lock();
        }
    }
    AddWaet(context, );
    ->postInitProcess();
    // W
    UpdateWaetSetting(*context.chain, name, load_on_start, warnings);
    // L
    if (!(_creation_flags & WALLET_FLAG_DESCRIPTORS)) {
        warnings.push_back(_("Waet created successfuy. The legacy  type is being deprecated and support for creating and opening legacy s wi be removed in the future."));
    }
    status = DatabaseStatus::SUCCESS;
    return ;
}
std::shared_ptr<CWaet> RestoreWaet(WaetContext& context, const fs::path& backup_file, const std::string& _name, std::optional<bool> load_on_start, DatabaseStatus& status, bilingual_str& error, std::vector<bilingual_str>& warnings)