Não estou 100% claro sobre suas necessidades. Na sua linha de abertura você pediu registros "onde o intervalo de datas de entrada cai entre dois campos de data", mas na linha "Adicionalmente" você implica que não deseja retornar registros em que a data de início do compromisso não seja igual a data de término de sua entrada. Eu considero esses dois requisitos diferentes, então vou dar a você duas consultas diferentes.
A primeira consulta é:
from t1 in db.Appointments
where date1 >= t1.AppointmentStart
where date2 <= t1.AppointmentEnd
select t1;
A segunda consulta é:
from t1 in db.Appointments
where date2 > t1.AppointmentStart
where date1 < t1.AppointmentEnd
select t1;
A primeira consulta retorna registros que "contêm" as datas de entrada.
A segunda consulta retorna registros que "sobrepõem" as datas de entrada.
Acho que faz mais sentido que você queira a consulta de sobreposição e esta atenda ao seu requisito "14:00 - 15:00 não retorna um valor para 15:00-16:00".
Avise-me se eu tiver cometido um erro ao entender seus requisitos e precisar fazer alterações.