i dati che hai esposto non sembrano ordinati
codice:
$dati[0]['inizio']='2021-01-12 08:00:00';
$dati[1]['inizio']='2021-01-12 11:00:00';
$dati[2]['inizio']='2021-01-12 08:30:00';
$dati[3]['inizio']='2021-01-12 10:00:00';
e poi dovrebbe essere data_inizio ASC per poter capire bene se la data_fine di un record corrisponde alla data_inizio del successivo