Here is how I ended up coming with a solution which meets our requirements. But, before that, some more info about my GDBs which were not clarified in the original Question by me. Basically, we have a backup of an AGOL GDB but in that backup there were no Datasets--everything was in the root of the FGBD that was downloaded from the AGOL site. However, the source data, which was used to publish to AGOL, did have Datasets (well, only one called 'Sewers') and we needed to have that Dataset back in the final/output GDB.
The solution in my Python script involved:
1) Making a duplicate of the AGOL database using arcpy.Copy_management(agol_src_gdb, target_gdb)
2) In the target_gdb, used one of the Feature Class' Spatial Reference to grab the factoryCode for the newly created 'Sewers' Dataset: sr = arcpy.SpatialReference(spatial_ref.factoryCode)
3) Deleted all Feature Classes from the target_gdb in a loop arcpy.Delete_management(fc)
4) Deleted all the static tables from the target_gdb in a loop: arcpy.Delete_management(target_gdb+"\\"+tbl)
5) Looping through the source AGOL database, copied all Feature Classes into the Sewers Feature Dataset: arcpy.Copy_management(fc,target_gdb+"\\"+fd+"\\"+fc)
Without step#4, there would be a bunch of duplicates of Feature Classes, Relationship Classes. Step #5 ensured that Relationship Classes and static tables which are part of the Feature Classes' Relationship Classes also make to target_gdb.
The result is not perfect because we have occasionally static tables renamed to something like 'mytable_1' and corresponding Relationship Classes renamed like 'myrc_1' but the data itself is making it fine and Feature Classes' and their Alias Names are matching those of the ArcGIS Online.
I don't know why we have objects like 'mytable_1' but my guess is there are objects in the source AGOL database with shared names, such as the same name for a Feature Class and a Relationship Class.