I believe Level vs Schedule Level vs Associated Level would all be based on the element being placed. As far as I’m aware, Schedule Level is specifically for elements that require a level reference but don’t necessarily host to the level.
FamilyInstance.ByPoint should be for “point and place” (unhosted) families. If the element is Work Plane hosted then neither
ByPointAndLevel will assign the level as the (Work Plane) host, but the Schedule Level (and therefore I assume other level reference parameters) would be assigned in the case of
ByPointAndLevel. I think you’d have to use Python or a custom node for hosted families in order to set the host by level.