As a rule, in Petals, an endpoint is registered on its deployment, and unregistered on its undeployment.
So, the native service endpoint should be registered when installing the component because the installation is similar to a deployment. And it should be unregistered when uninstalling the component.
But when installing the component, the component itself that is required to do endpoint registration (Component.getServiceDescription(...) is invoked by ComponentContext.activateEndpoint(...)) is not available yet. Only the component bootstrap is available.
So, to have the native service endpoint registered the most time it must be registered on component initialization instead of component startup, and its unregistration must occur on component shutdown instead of component stop.