For pure Rust projects there is no real discussion to be had, if it's not using Cargo then it's making life unnecessarily difficult for developers.
So that leaves mixed projects, eg larger C/C++ projects that have begun incorporating Rust into their code base.
There I see multiple options being used, from custom solutions (eg rustc) to CMake and others.
As for taskfile, personally I have a strong distaste for whitespace-delineated formats for config files. Makes it way too easy to mess something up inadvertently.
YAML is the perfect example: move some list entry to the wrong indentation level, and either it blows up, or worse, it becomes a silent failure until way later when it's more expensive to fix.