What is the different argument for "Launch On" and "Project Launcher"

Hi there,

I have a weird case, Im working on Quest atm. I use stereo layer in my project. When I use “Launch On” it works normally. But when I use “Project Launcher” it doesnt work.

Problem is, I cant use Launch On if I dont have a Quest connected. So I cant package a project with stereo layer working properly.

Have a look at my question in answerhub. Oculus Quest Stereo Layer not working when cooked by the book - UE4 AnswerHub

First I thought it was Cook by the Book and Cook on the Fly difference. But I realized its not that.
Then I found that Launch On and Project Launcher uses different arguments. I tried almost every possibilitiy by adding and removing arguments in each one.
Then I thought I solved it but I didnt. My workaround was, use a modified command line. But I realized it was working if I use it only after I use Launch On.

Exp: Use Launch On -> Use modified command line -> Working
Exp: Use Project Launcher -> Use modified command line -> Not working

In the log, Launch On cooks the project before parsing the command line. Only major different argument in Launch On was -CookInEditor. I think this -CookInEditor is related to this bc I think Launch On is using /Saved/EditorCooked and Project Launcher is using /Saved/Cooked when they package.

What do you think? What is Launch On doing different then Project Launcher? How can I get the Project Launcher to cook in editor?