In the cf10 task scheduler, if I want to chain programs such that program B starts after program A ends, do I click on "Chained Task" for program B or do I supply program B's url in the "On Complete" input for program A?
You do both.
On the "main" task, you specify what task(s) run after it completes in the "On Complete" field.
On the "sub" tasks, you specify that they "Chained tasks", which means you don't specify a schedule for that task (otherwise you'd not be able to submit the form).