I think that it really helped that back in grad school I read
https://www.docdroid.net/z8ki/knuth.pdf and thought hard about Knuth's ideas. I even went so far as to make a course outline for a first course in Calculus based on his ideas.
The result is that I was able to break my exposition into one piece at a time, starting with ideas that were already accessible. More specifically I started with the idea that f(x) = approx(x) + error(x) where we want approx simple and error small. This motivates a language for describing what "small error" means, which motivates little-o for polynomials.
That's enough to do tangent lines and answer questions like, "Given the equation for position vs time, how fast is the rock going when it hits the bottom?"
Only after he could calculate tangent lines did I introduce the derivative.
Contrast to the usual approach where limits are an abstract concept with no obvious application, and then the derivative is introduced. It actually combines several ideas jumbled together. That's a big mental knot that almost nobody gets. And explaining it more carefully doesn't help because people keep getting to holding too many unintegrated ideas in their head at once.
And seriously, heuristic arguments that you can reproduce whenever you forget them are good. Take the product rule.
f(x0+h) = f(x0) + f'(x0) h + o(h)
g(x0+h) = g(x0) + g'(x0) h + o(h)
(f*g)(x0+h)
= (f(x0) + f'(x0) h + o(h)) * (g(x0) + g'(x0) h + o(h))
= f(x0) * g(x0) + f(x0) * g'(x0) h + f(x0) * o(h) +
f'(x0) h * g(x0) + f'(x0) h * g'(x0) h + f'(x0) h * o(h) +
o(h) * g(x0) + o(h) * g'(x0) h + o(h) * o(h)
= f(x0) * g(x0) + f(x0) * g'(x0) h + o(h) +
f'(x0) * g(x0) h + o(h) + o(h) +
o(h) + o(h) + o(h)
= f(x0) * g(x0) + (f(x0)*g'(x0) + f'(x0)*g(x0)) h + o(h)
And we recognize the form of the tangent line and so the derivative of f*g is f' g + g f'.
I had him do that calculation with only minimal prompting. And I think that this is a calculation that I'd like every Calculus student to be able to do on demand. If you forget the rule and you know that argument, you can figure it out again.