It would be very useful to be able to schedule workflow and/or action runs at specific times within CRM. Right now the alternatives seem to be to use the Timeout step to make workflows wait a certain amount of time - however, if you want them to fire at 2:00am, for example, you either have to kick it off at the exact right time or add even more complicated steps to try to track when the job started, how long it has to wait, etc... Also, if the workflow is stopped you have to do that all over again.
Alternately you can write an external console app that calls the actions via code, and can then be scheduled via Windows Tasks Scheduler or similar.
In terms of how it functions, the second seems very preferable. Tasks can be scheduled at exact times, and Task Scheduler has all of the options to retry on failure, etc... However, having to write this and having it be completely external (and accessible only through the server) is not ideal. I'd love to see an external console app pre-written, and then the ability to configure it through CRM directly. (i.e. something in CRM options where you say what workflow/action you want to run, when, etc... and then it creates the tasks in task scheduler)