3) The DS pushes the state up to higher in the stack and then locks it in a mutex (the choice to use a mutex and not an atomic is… interesting, but that aside). The HS just passes the result along as part of the code path that was already established.
HS's approach is _much_ easier to read and more closely matches the code that is already there.
3/
4) The DS includes sections of code that look… well they look like generated templates waiting for someone else to fill them in. There are even comments to this effect. It creates a dead branch to… write a comment that says someone else can put something here.
Notably, this text is a lot like how _tutorial projects_ are written. That stands out to me and tells me something about the training set.
HS's approach of course doesn't do that.
4/