Your best bet is to convert feature vertices to points, and then iterate through each midpoint and perform a point distance on its correlating polygon vertices. This will be a slow process, but I'm not aware of any other process that will work for you.
In the below example, I create a dictionary with polygon UIDs as its key and the furthest distance as its value. The script makes use of the Point Distance tool, which requires and advanced license. If you don't have an advances license I've written a blog with a custom Point Distance here.
#centroid points
centroidFc = r"C:\data.gdb\Test_Midpoints"
#polygons
polyFc = r"C:\data.gdb\Test_Polygons"
#unique ID field. shared in both feature classes
uidFld = "UID"
import arcpy
#feature verts to points
featVertFc = r"in_memory\vertPnts"
arcpy.FeatureVerticesToPoints_management (polyFc, featVertFc)
#empty dictionary
di = {}
#iterate midpoints
with arcpy.da.SearchCursor (centroidFc, [uidFld]) as curs:
for uid, in curs:
#sql for selection
sql = "{} = {}".format (uidFld, uid)
#create feature layer with sql applied
arcpy.MakeFeatureLayer_management (centroidFc, "Test_FeatureToPoint", sql)
arcpy.MakeFeatureLayer_management (featVertFc, "Test_VertPoints", sql)
#create point distance table
arcpy.PointDistance_analysis ("Test_FeatureToPoint", "Test_VertPoints", r"in_memory\PntDist")
#get table max
maxDist = arcpy.da.TableToNumPyArray (r"in_memory\PntDist", "DISTANCE")["DISTANCE"].max ()
#add to dictionary
di [uid] = maxDist
#clean up
for fil in ["Test_FeatureToPoint", "Test_VertPoints", r"in_memory\PntDist"]:
arcpy.Delete_management (fil)
arcpy.Delete_management (r"in_memory\vertPnts")
print di
Result:
