Hello Dragline,
Here's a quick basic script that takes the markers in their project order and uses them to create a shape vertices, the shape is automatically set as outer boundary:
chunk = PhotoScan.app.document.chunk
T = chunk.transform.matrix
crs = chunk.crs
if not chunk.shapes:
chunk.shapes = PhotoScan.Shapes()
chunk.shapes.crs = chunk.crs
shape = chunk.shapes.addShape()
shape.label = "boundary"
shape.type = PhotoScan.Shape.Polygon
shape.boundary_type = PhotoScan.Shape.BoundaryType.OuterBoundary
coords = [crs.project(T.mulp(marker.position)) for marker in chunk.markers]
shape.vertices = [PhotoScan.Vector([coord.x, coord.y]) for coord in coords]
If you need add some "buffer" I think that you can recalculate the vertices' locations, for example, move the vertex away from the area center by the line that connects the origin and the old vertex location. Let me know, if you need any help with that.