manifest and startcmd are incompatible:-
The smf.rb provider checks status, adds the manifest, checks the status, enables the service (again) gives an error, as svccfg hasn't had time to complete registration of the new service.
It adds the service, but puppet then errors, as the svcadm enable -s newservice fails, as it runs too quickly. If you could just specify a manifest w/o having to issue ensure => running this would work fine. But manifest is called from within the startcmd function via self.setupservice