What causes excessive CPU use by taskgated, notifyd, and launchd processes?
Is your question to understand macOS better or have your Python code complete faster? I suspect the latter.
If so, have you profiled your Python code? What does the performance profile show?
macOS
taskgated and launchd are both involved in evaluating and launching processes.
Turn on macOS's server performance mode for raised resource limits.
If a lack of code signing is a suspected cause, you can ad-hoc code sign your – and others' binaries:
sudo codesign -f -s - &lt;full path to bundle or executable&gt;

External Processes

The spawned processes range in longevity, it's anything from a simple &quot;mv&quot; terminal command to running another program that can take seconds to hours, though most are on the shorter side.

On any operating system, avoid calling out to external processes when an in-language call exists. Launching a process and waiting for the process to terminate is expensive, compared to a system call.
See Python - How to move a file? to replace mv with os.rename(), shutil.move(), or os.replace().
Threads
Adding threads to your process will not guarantee that calls down into the operating system will not be queued and handled sequentially.
Threads in Python are posix threads and thus managed by the operating system. Adding threads gives the underlying operating system more work and more influence on how your process performs. In this regard, the difference between Linux and macOS is significant.
Use threads to handle data manipulation and, where possible, pass off file handling work to a dedicated file handling thread. Avoid touching the disk unless absolutely essential to continue the next task. Even then, try and pass data to and from other processes using pipes or inter-process communication (IPC).
Use a solid state drives (SSDs) instead of spinning hard disk drives (HDDs).
Linux
Given you appear to have proven Linux is faster than macOS, use Linux.
Docker
To save months, I would justify 1 - 2 days experimenting with Docker. This approach will allow you to run a light weight instance of Linux on your Mac and avoid the proven costs of macOS. This should ease the cost of spawning processes.
There will be an unfortunate learning curve to Docker but it will be time well spent.
Using Docker will give you a well defined working environment that can be started, stopped, and replicated without ties to the host operating system.
Unavoidable?
Be wary of assuming the 20-25% of system time is not useful, and is avoidable. macOS is a heavy operating system compared to Linux. High Performance Computing uses specific operating systems for a reason. If using Linux is easy and gets the results faster, sinking time into macOS appears unjustifiable.