I would prefer to retain launch as a separate method which takes switch_to_frame and wraps the GaiaApps launch method. I don't really see instantiating a class and launching an app as shared tasks so much.
 
I think there will be lots of scenarios where apps are launched by clicks or other apps so I think launch=False will probably be one of the most common cases thus it's cleaner to just instantiate the class with no action.