Объясните, как реализовать паттерн 'fan out / fan in' в asyncio. Какие особенности нужно учитывать при сборе результатов от параллельных задач?