Ah, nice approach to your matrix!
I don’t know about “bearing” in Jsprit, but in your matrix you get from graphhopper, you can add “costs” to left turns?
Here:
Sorry, not able to help with bearing, but perhaps controlling turns including u-turns may help?