AFAIK there is no link between actions and objects once they are unassigned from the object (ob.animatiion_data.action , as you mentioned), or via the NLA. A workaround I’ve used is to assign a cross reference ID property (or similar) to your actions.
action["Skeleton"] = True
You can then retrieve a list of associated actions with:
skeleton_actions = [ a for a in bpy.data.actions if "Skeleton" in a.keys()]
Also pays to assign a fake user to unassigned actions.