I created an extension method for the the class Random which executes an Action (void delegate) at random times:
public static clas
Sleep "talks" to the Operation System that you want to suspend the thread. It's resource-intensive operation cause your thread uses RAM anyway (although it doesn't require processing time).
With thread pool, you could use thread's resources (f.e. RAM) to process some other small tasks. To do it, the Windows lets you put a thread to sleep in a special alertable state, so it may be awakened and used temporarily.
So Task.Delay let you put threads to alertable sleep, and therefore let you use resources of these thread unitl you don't need them.