Maybe we just need to do a better job of anticipating subthreads and create more fine-grained topics from the start
Yes please! And also react to developing threads. Discourse admins can split topics in a way that moves existing posts and makes the two topics clearly link to one another.
For example, in each of several recent threads about implicits, a topic about naming and trivial syntax changes could have been split from the topic(s) about semantics.