Thanks for suggestion. Before implementing your workaround I thought I’d give one last run at quoting random parts of command. I finally succeeded, but have no idea why this is working and previous one isn’t.
run(`cmd /min /C set __COMPAT_LAYER=RUNASINVOKER '&&' start '' 'C:/Users/User/AppData/Local/Programs/My Program.exe'`; wait=false)
Double quotes after start are needed to pass second argument.