So many questions. At a high level, and this may seem obvious but it helps to bear it in mind. Think of Custom objects as Nouns, and think of Custom Activities as Verbs. When you think of it like that, the difference is obvious, and the use cases write themselves.
Examples of Custom Objects
Examples of Custom Activities
Subscribed to mobile app
Leased an Automobile
Deleted a Portfolio
Here's a comparison...
|Custom Object||Custom Activity|
|Can be created by you as a Marketo Admin||Must be created by Support or Consulting|
|Can have individual instances added via the SOAP API||CANNOT have individual instances added via the SOAP API|
|Can have individual instances added via the REST API||Can have individual instances added via the REST API|
|Can be used in Email Scripts||CANNOT be used in Email scripts|
|Can trigger off the insertion of Custom Objects||Can trigger off the addition of Custom Activities|
|Can filter on "has Custom Object"||Can Filter on "has Custom Activity"|
|Can update and delete||Cannot programmatically delete or update|
As you can see below comparing the available Triggers and Filters for a Custom Object and a Custom Activity, in a Custom Activity there is no concept of "has custom activity" because they are by their nature, in the activity log of the associated lead, whereas the Custom Object very much exists in a current state "this lead owns these Apple products" vs "this lead made Purchases"
Screenshot 1: Available Filters and Triggers for a Custom Object
Screenshot 2: Available Filters and Triggers for a Custom Activity
So you can see, they really each have their place. What are your use cases? Add a commend below and tell us!