Although SCons is Python (which is a pro or con depending upon your perspective), it has strong dependency management. Or is the argument that dependency management is part of build, not general project maintenance?
If you go a bit further down this route, you end up with build tools that generate the compilation rules for you in some form: These are Automake/CMake/Meson and SCons. I did use scons years ago and it was nice, but its definitely completely lost its market share. IIRC Scons does this without generating Makefiles.
Task and Just are following a different route. The problem people have solved by using a "hack" in Makefiles (PHONY targets), so that you can easily run "sub-commands" in Make (make install_deps, etc). It would never occur to me to use Scons in that space.
Btw. a third option is to use a shell script like the following (POSIX-shell compatible actually).
sub_install_deps() {
set -e -x
# ...
}
sc=$1
case $sc in
"" | "-h" | "--help")
sub_help
;;
*)
shift
"sub_${sc}" "$@"
if [ $? = 127 ]; then
echo "Error: '${sc}' is not a known sc." >&2
echo " Run '${prog_name} --help' for a list of known scs." >&2
exit 1
fi
;;
esac