I was wondering if it is possible to have my workflow wait for less than 1 minutes (e.g. 30 seconds?)
The TimeoutDuration of the Delay activity is a TimeSpan which means that it could in theory be set to milliseconds.
But in practice every time you delay your workflow in only picked up the next time the Workflow timer job runs which by default is every 5 minutes.
You can change how often the timer job runs by using stsadm, but you probably shouldn't set it below 5 minutes and definitly not below 1 minute
This can be achieved using the following steps as described here.
Create a workflow variable called "delay_timer": Number
Use Calculate action to get required delay/pause time and save in workflow variable "delay_timer" (eg: 1 divided by 20 = 3 seconds)
Pause workflow for "delay_timer" duration.
Also refer this relevant thread.
What about setting an "empty" loop? (i have tried with a comment on an useless workflow variable repeated for 10 k or 20 k depending on how long time I need, it worked fine)