Both of those are largely bound by i/o, but with some processing in between, so the best way to speed things up is probably am async i/o loop that feeds a worker pool. In Python, you'd use processes, which can be expensive and a little complicated, but workable.
And as you pointed out, scons and pip exist, and they're fast enough. I actually use poetry, and it's completely fine.
You could go all out and build something like cargo, but it's the architecture decisions that matter most in something i/o bound like that.