Well, that took a little longer than it should have, mostly because real life interfered with coding. So, direct line drawing of paths:
...and then, pathfinding paths, based on the movement cost of individual terrain:
I'll still need to work a little bit on some edge cases that'll result from truly impassible terrain, since I'm taking a mini-map approach to it, rather than pathfinding on the (prohibitively large) entire map. Also, I might offload it to another thread if it seems to be an issue, but so far, the computational cost seems pretty reasonable.