A task runner is best suited for executing one off "tasks" or "jobs" upon a user's request. For example, npm scripts or the chron daemon. A build tool on the other hand, should facilitate the compilation of a project and its dependencies in an orderly deterministic fashion.