If you have any data integration to webservices or Simple Database before the first prompt, that may be the source of the delay. If not, you should hear your first prompt immediately. If you are testing via the Run! button, that also causes the application to be far slower than usual since it has to sync up with the visuals on the web browser.
Another thing that might be causing a "delay" for outbound calls is that outbound calls do not connect until they detect something on the other line. For example, if you queued an outbound call to yourself and said "Hello?" like a typical callee, the outbound call would start immediately. However, if you picked up and remained silent, the call would not begin until several seconds later when it detected it was connected.
There's no perfect way to make your outbound campaign leave voicemails but the best way to do this would be:
1. Outbound call goes out
2. Callee's phone rings then goes to voicemail
3. As soon as voicemail picks up, the outbound call is connected and will begin immediately
4. This is the imprecise part. You'll need to determine how many seconds to delay the call so that your message will begin after the callee's voicemail prompts have ended. This is different for every single voicemail system, but the more you know about your callees' voicemail systems, the more accurate you can make this delay.
If your outbound campaign reaches a real person, then this application would be pretty confusing for them as they would also hear that predetermined silence you added in the beginning. This is why we suggested in previous support emails that you use the workaround of playing a prompt like, "Please press 1 to hear your message." You should set the timeout to the number of seconds as determined in step 4 above. That way if it's a real person, they will press 1 and hear the message. If not, the application will wait x seconds to timeout, and then it can play the message anyway.