A lot of the comments answer most of your questions, but I mainly wanted to contribute to this question:
Is there a way in which the behavior of the backtick actually differs from that of a single quote?
A difference I've noticed for template strings is the disability to set one as an object property. More information in this post; an interesting quote from the accepted answer:
Template strings are expressions, not literals1.
But basically, if you ever wanted to use it as an object property you'd have to use it wrapped with square brackets.
// Throws error
const object = {`templateString`: true};
// Works
const object = {[`templateString`]: true};