Here, I suggest following:
1) make an Observer interface as a ApiTestExtensionInstance nested type, having only "void NotifyTestComplete(ApiTestResult result);".
2) Make observer a ApiTestExtensionInstance's constructor parameter (instead of extension itself)
3) Rename this class to ApiTestRunner and inherit it from ApiTestExtensionInstance::Observer.