Cancelling workflows created from an activity python sdk

We have an activity which calls multiple workflows (not child workflows) . When the activity is cancelled/ times out we want to cancel/ timeout the individual workflows as well .
How do I accomplish this in python SDK ?

When this activity worker crashes and the activity is retried, does it reconnect to the already running workflows? This assumes that their IDs are the same when the activity is retried.

Currently the activity does not reconnect to the workflow. I am trying to find out how to reconnect to the spawned workflows, so I can initiate cancellation . Also , the new spawned workflows have different workflow IDs. Does it mean , I will need to have another activity to keep track of the workflow IDs spawned by the parent workflow activity ?

Why do you use activity to start a workflow instead of starting a child workflow?

I am trying to use langgraph along with temporal. When I am using this for some the reason the temporal workflow modifies the asyncio loop. There is some incompatibility with using lang graph + temporal workflow. I did not see when using activity .

This is the error I saw when I invoke the langgraph agent from temporal workflow
self.afunc(input, **kwargs)\n\n File "/export/content/lid/apps/argent-service/i001/libexec/argent-service.pyz_fec4c6388859b17571cc218aa096d4664c78608d928461733f4d5bb96a3d4268/site-packages/langgraph/graph/graph.py", line 107, in _aroute\n value = await asyncio.to_thread(reader, config)\n\n File "/export/apps/python/3.10/lib/python3.10/asyncio/threads.py", line 25, in to_thread\n return await loop.run_in_executor(None, func_call)\n\n File "/export/apps/python/3.10/lib/python3.10/asyncio/events.py", line 287, in run_in_executor\n raise NotImplementedError\n",“applicationFailureInfo”:{“type”:“NotImplementedError”}}

Temporal workflow is not allowed to call any external IO directly. It should use activities for this. But it can use Temporal APIs to create child workflows directly.