Iterator based utilities for handling sync & async tasks like async execution with a maximum for parallel tasks at the same time