Your question is similar to asking: what happens in case of a network partition?
The answer is inactivity leak.
The Ethereum protocol has a special mode that activates itself if no finalization has occurred for at least 4 epochs.
Situation 1: What happens if the network is partitioned in half forever?
In your example (1), you give a situation in which the validators are split in half. In that case, you are right, a fork occurs, and on each chain there is only half of the validators active so no finalization occurs. This trigger the inactivity leak.
The inactivity leak is a kind of emergency state in which rewards and penalties are modified as follows.
- Attesters receive no attestation rewards, while attestation penalties are unchanged.
- Any validators deemed inactive have [increased penalties].
- Proposer and sync committee rewards are unchanged.
This creates a situation where unactive validators' stake steadily dwindles as time goes by. It continues until active validators control 2/3 of the stake and can finalize again.
So in example (1), both partitions will eventually finalize again.
Situation 2: What happens if the network is partitioned in half for a finite period of time?
There are three cases:
- The partition time is short enough and no finalization has occurred on the concurrent chains.
- A finalization has only occurred on one chain.
- Finalization has occurred on both chain
Outcomes are as follows:
Once validators see the concurrent chain they will apply the fork choice rule to determine which chain is the canonical one.
This would make the chain with finalized blocks the canonical one. Though it may possible for the other half to prefer to continue their fork to not lose a large portion of their stake by returning in a chain in which they've been penalized during their absence.
The fork would be irreconcilable, both partitions would continue on their chain.