Use ProcessPoolExecutor for cron process
The cron process is a long running process. But a frequent issue with long running Python process is the memory management, the Python process tends to keep memory it has used.
So for example, it may happens that a cron task requires a large amount of memory for a particular run and then no more. In such case the process may not be able to free this large amount of memory.
I think it will be better to use a pool of process to run task (like for worker) and have the main process only orchestrate the execution.