Why does variadic version need a return block?

Not simple. What is the point of them? This doesn't explain why they're needed.

They aren't required for @nathenaelhailu08 project needs as the longest delay is 0.1 of a sec but would be very useful in scripts with longer delays in them

Try out the the last example from @mark4sisb

Mmm... I see. I hadn't looked at what all it was needed for in the project - rather, I was concerned about making a general solution. Now I get what is going on.

See above. I see now that you are right: in this particular case, they weren't required.