### Environment

* Dubbo version: 3.2.0
* Operating System version: macos10.15.7
* Java version: 1.8

### Steps to reproduce this issue

使用各种方式导致Module启动失败。

### Expected Behavior

Module启动失败，不暴露MetadataService。

即不执行DefaultApplicationDeployer#prepareApplicationInstance。

### Actual Behavior

由于org.apache.dubbo.config.deploy.DefaultModuleDeployer#onModuleFailed传入错误的状态STARTED，导致执行DefaultApplicationDeployer#prepareApplicationInstance。

```java
private void onModuleFailed(String msg, Throwable ex) {
    try {
        setFailed(ex);
        logger.error(CONFIG_FAILED_START_MODEL, "", "", "Model start failed: " + msg, ex);
        applicationDeployer.notifyModuleChanged(moduleModel, DeployState.STARTED);
    } finally {
        completeStartFuture(false);
    }
}
```


if (serviceRepository != null) {
            List<ConsumerModel> consumerModels = serviceRepository.getReferredServices();
            for (ConsumerModel consumerModel : consumerModels) {
                try {
                    if (consumerModel.getDestroyRunner() != null) {
                        consumerModel.getDestroyRunner().run();
                    }
                } catch (Throwable t) {
                    logger.error(CONFIG_UNABLE_DESTROY_MODEL, "there are problems with the custom implementation.", "", "Unable to destroy model: consumerModel.", t);
                }
            }
            List<ProviderModel> exportedServices = serviceRepository.getExportedServices();
            for (ProviderModel providerModel : exportedServices) {
                try {
                    if (providerModel.getDestroyRunner() != null) {
                        providerModel.getDestroyRunner().run();
                    }
                } catch (Throwable t) {
                    logger.error(CONFIG_UNABLE_DESTROY_MODEL, "there are problems with the custom implementation.", "", "Unable to destroy model: providerModel.", t);
                }
            }
            serviceRepository.destroy();
        }
        onModuleStopped();
    }
    private void onInitialize() {
        for (DeployListener<ModuleModel> listener : listeners) {
            try {
                listener.onInitialize(moduleModel);
            } catch (Throwable e) {