Bidirectional entity relationships?
I would use 2 entity reference field, one in each content type referencing the other. With some custom logic, you could add the desired behavior, eg remove reference Foo -> Bar when the user removes Bar -> Foo.

Regarding the migation, you can run the first migration twice with the --update flag the 2nd time:


Step 1. Migrate Foo. The migration_lookup plugin will not find any values for the entity reference so it will be empty.  
Step 2. Migrate Bar. Foo already exists, you should have no problem with the entity reference.
Step 3. Migrate Foo again, with the --update flag. Bar already exists, so the entity reference field will filled.