Some time has passed, and I changed the way I manage my themes. I have a global environment variable THEME that can be dark or light depending on the current system theme. In my lazy.lua, I call os.env to get its value and call vim.cmd("colorscheme <a theme matched with $THEME>"). It's not just as good as VSCode but it does what I need.