I was having problems when my custom made Visual Studio workflow initiated a task. The problem was that I was getting email notifications at least after 5 minutes. I had every thing configured perfectly. The problem is not only related to custom workflows, the original issue was that any notification being sent either from lists, Announcements, Alerts were delayed.
Upon investigation, I found out that there is a job in Sharepoint 2010 called "job-immediate-alerts"
which is by default configured to run every 5 minutes.
As stated my Microsoft it specifies the frequency to check for alerts that are to be sent immediately. The value specified is in minutes.
Open command prompt and browse to 14\bin and run the following command to identify if the job is running on the site
stsadm -o getproperty
propertyname job-immediate-alerts
-url < your-site-URL >
To set the property run the following command
stsadm -o setproperty -propertyname job-immediate-alerts -propertyvalue < A valid Windows SharePoint Services Timer service schedule > -url < your-site-URL >
Property Value can be set in the following manner
stsadm -o setproperty -propertyname job-immediate-alerts -propertyvalue "every 1 minutes between 0 and 59"
By running the above command you set the job to run every minute
References:
http://technet.microsoft.com/en-us/library/cc262432(office.12).aspx
http://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/f53c0c3c-ec31-4a40-b822-055eac2d0e3e/