I don’t have time to continue looking today but what I’ve found is that where the settings are being ignored starts in SetupParams() in BuildCookRun.Automation.cs. It creates a new ProjectParams object in there - that’s the object that needs to contain all of the correct data.
In theory passing the “cookdir” parameter with directories delimited by the ‘+’ character should solve your problem! So far that seems to be specified in CookCommandlet.cpp and CommandletUtils.cs - so either they’re not working properly or it needs to be specified somewhere else too!
Hopefully that gives you something to start working with!