As a build system CMake hast to do alot with long running tasks, especially when using external programs in the build or configuration process. E.g. checking out a dependency repository, uploading a large file ...
I needed a system which allows me to do some parallel work and split larger tasks into smaller independent tasks.