Thank you to both Daniel Cruz and fdomn-m for your comments. Indeed the root cause of this confusing error was conflicting jQuery loads. Although my code did not load jQuery multiple times the template my page was using did. Once I remove the extra jQuery import everything worked as expected, regardless of where the .jstree() method call was located.
Cheers!