> I disagree with hashing user_entropy before concatenating (I don't see a benefit), but I see no downside except that it's slightly harder to read and slightly slower.

Hashing it ensures a lower bound on the complexity being added. `user_entropy='abc'` is not much extra entropy, but the sha512 hash of that is. If this input is just the user banging on his keyboard then even for very large user inputs I wouldn't expect it to be more random-looking than the result of the hash of the input, even accounting for truncation down to 64 bytes.