What is the best way to record the primary contact for an organisation?
Option 3 is the clear winner, because neither option 1 nor option 2 have a clear way of indicating which organization they're the primary contact of.  As soon as someone is affiliated with two organizations, that means trouble.

The unfortunate part of this is that you can't assign a profile via a relationship.  You can do so via Webform-CiviCRM, or via Caldera Forms CiviCRM, and when afform comes out, you'll be able to use that.  However, since you also can't create two contacts in one profile, that doesn't generally cause issues.