Yeah, that works too; eliminates the unclean feeling of having a "DeploymentPlanResult" object whose results are unstable over time.
For now I'll generate the DeploymentPlanResult based off the status when BatchBuilder.install() returns. If later we figure out a mechanism to identify and track the status of services that represent the "meat" of a particular deployment type, then we can defer generating the DeploymentPlanResult until those services are "complete". That change wouldn't affect API.