ok so i read the code and kept chasing and figured a way to make it happen. so a number of formats can be published with just .publish() but some apparently need to be analyzed??? but the product of a analyze on a geopackage is broken. you tell it you are analyzing a geoPackage but it returns that its CSV. so then you have to sternly say that no it is in fact geopackage. so this works ...
analyzed = agolSpace.content.analyze(item = sourceItem, file_type='geoPackage')
publish_parameters = analyzed['publishParameters']
publish_parameters['type'] = 'GeoPackage'
item = sourceItem.publish(publish_parameters, file_type='GeoPackage')
ahh but .overwrite still fails. so i can add it and publish it but not update it...?????
in fact you can not overwrite a feature layer made from a geopackage even through the online interface
i read the caveats about overwrites here
but nothing helped. i guess i have to take the above docs as correct where it says "To update the data in hosted feature layers published from a file geodatabase, shapefile, GeoJSON file, Microsoft Excel file, or .csv file"