Great summary of structured vs. unstructured tasks. One complementary tip: when using TaskGroup, explicitly handle child task errors inside the for-await loop to prevent a single failing task from propagating and canceling the entire group prematurely. This keeps your concurrency structure robust.