In order for your custom action to be executed before the services are started you could place your custom action under "InstallServices".
Here is how it could be done. In the "Custom Action" page use the [ Show Standard Action ] tool bar button to select "Before Finalization"->"InstallServices". A new branch called "InstallServices" will appear in the "Install Sequence" tree. Place your custom action under it.
The custom action is not executed because at the time it is scheduled, the files are not present in the destination folder.
You could set the custom action to be executed as "Deffered". It will run without any problems, but I don't know if the services will be started correctly.