Great answer. I am also a fresh "lead" and am struggling with some aspects, but as you said, clarifying the direction and working together are the most important ones. Pairing also allows you to explain things in more depth, which aids understanding.
We don't do complex planning, usually have a few meetings and we start prototyping. So that's been a non-issue luckily as a lead. Detailed estimation can be really exhausting and takes a toll on the team.
Another reason to use libraries is communication. Would you prefer to receive a GitCommitResult in your code, or have to parse the stdout of the subprocess? If you need complex communication with the other program, then it needs to provide rpc or some other form of inter-process communication. A library avoids this issue.