Delay function takes either a callback or returns a promise.
Number of milliseconds to wait (optional, default: 5000)
Callback to execute after the delay (optional)
Delay function takes either a callback or returns a promise.