First you should know that using InstallUtil custom actions ( regardless of how documented and written about they are ) are not a good choice. Throw them away. The same goes for the Visual Studio Deployment Project that you are using to consuem your custom action.
The best solution lies in leveraging Windows Installer built-in support for creating and starting services. Use InstallShield 2010 Limited Edition ( Free ) or Windows Installer XML ( FOSS ). These tools expose the ServiceControl table which has a Wait column that allows you to teach MSI:
Wait
Leaving this field null or
entering a value of 1 causes the
installer to wait a maximum of 30
seconds for the service to complete
before proceeding. The wait can be
used to allow additional time for a
critical event to return a failure
error. A value of 0 in this field
means to wait only until the service
control manager (SCM) reports that
this service is in a pending state
before continuing with the
installation.
ServiceControl Table