The latest version of JTS implements an algorithm that computes a concave hull of the input polygons, which guarantees the input polygons are contained in the result hull.
All of the pythonic concave hull implementations i've seen work with points as inputs so there is no guarantee the result will contain the input polygons. (If for example I use the polygon points as input)
Is there a pythonic implementation that achieves the same result as JTS?
You can try mapbox/concaveman, or my python version concave-hull.
Some example:
P.S. You may densify your polygon (shell), so that length of edges are smaller than
length_threshold