I haven't reviewed the code yet, but :+1: in concept.
Even without the improvements regarding being able to cancel the dialogs and leave the old project open (nice BTW), I've always felt asking to confirm closing the project was unnecessary as it only happens in response user actions and (AFAIK) is totally non-destructive.
I've kept confirmation for opening a project file from the command line, in case it was a glob mistake.
I have never considered command-line user, can you give an example of how something bad could happen in this case?