The gogo:gosh command is provided by the Shell bundle, not the Command bundle and is therefore present even if the Command bundle is not started.
I cannot reproduce the condition you describe, even if I start the Shell bundle before the Runtime bundle.
A ServiceTracker is used to locate gogo commands in other bundles. It should not matter when this tracker is started, as it gives an initial list of matching services and then updates and new services appear.
The patch you provided caused a NPE at Activator:156 where the process field is accessed.
Please provide more details of your problem, ideally a test-case.