As the navmesh is not documented well enough and there are no information about how to use it or why majority of the settings don't produce simple paths, I decided to try (almost) all combinations of parameters.
I am using a map 512*512 size, trying to create RTS and I was having issues with units not finding the shortest path in majority of the cases.
So first I tried all three partitioning algorithms.
Watershed, mesh looks pretty, but units tend to walk around trees, and even with tweaking all the parameters, I was unable to make them find the shortest path. Moving on to next one
Monotone, mesh has a lot of long, thin polygons. Looks weird, but most of the time the units seem to find the shortest path, but sometimes they randomly followed the long edges in opposite direction, probably trying to reach node behind them, so they could turn around which also obviously does not produce the shortest path, so I quickly moved to next one as I found no way to prevent that.
Layers, this one looked promising. Units didn't try to slalom around every tree that wasn't on their way like in watershed, but they did that ocassionally. I decided to stick with this algortithm. Although there is an issue - the engine freezes if I set cell size to too low or edge max error to too low and other parameters.
So now, I had my favorite algorithm, but I wanted the paths to be perfect. And I failed in doing so, but I got it to work decently by tweaking the parameters. In my case, i got good results with this configuration:
Final result was that units still sometimes didn't find the shortest path, and went around trees, but they didn't fail a lot as they did when I used other two algorithms. If someone has idea how the parameters influence pathfinding, or has some suggestions on how to improve the navmesh in this or in general case, please go ahead and post an answer :)
I didn't go exploring science behind it, just tried to evaluate it empirically (kinda).
And also, check this question