There's no built-in function to do so, but you can perhaps produce a series of buffers and look at how they interact with the original data to determine an approximation for both minimum and maximum width.
Specifically, with border line L and area A:
* for minimum width, compute a series of buffers of L of increasing sizes (perhaps take the average width W you already found, then use W/10, 2*W/10, 3*W/10, ..., W - easy to do using CALL ValueSequence(...) in 9), intersect each buffer with the area A, and look at the number of branches in the result - the moment the number of branches in the result becomes greater than the number of branches in A (one or more the branches got split), this is an approximation for the minimum width;
* for maximum width, compute a similar series of buffers of L of increasing sizes (but go up from average width W to, say, radius of the common enclosing circle), intersect each buffer with the area A and look when the result is going to become empty (the buffer covers the whole area) - this is an approximation of the maximum width.
This all is pretty computationally intensive, but should work for reasonable data sizes.
Maybe there's an easier way.