waitForAll method
Wait for all running tasks to complete.
Implementation
Future<void> waitForAll() async {
final futures = _tasks.values
.where((t) => t.isRunning || t.status == TaskStatus.queued)
.map((t) => t.waitForCompletion());
await Future.wait(futures);
}