No estoy 100% claro en sus requisitos. En su línea de apertura, solicitó registros "donde el rango de fechas de entrada se encuentra entre dos campos de fecha", pero en la línea "Además", implica que no desea devolver registros donde la fecha de inicio de la cita no es igual la fecha de finalización de su entrada. Considero que estos son dos requisitos diferentes, por lo que le daré dos consultas diferentes.
La primera consulta es:
from t1 in db.Appointments
where date1 >= t1.AppointmentStart
where date2 <= t1.AppointmentEnd
select t1;
La segunda consulta es:
from t1 in db.Appointments
where date2 > t1.AppointmentStart
where date1 < t1.AppointmentEnd
select t1;
La primera consulta devuelve registros que "contienen" las fechas de entrada.
La segunda consulta devuelve registros que "superponen" las fechas de entrada.
Creo que tiene más sentido que desee la consulta superpuesta y esta cumplirá con su requisito "14:00 - 15:00 no devuelve un valor para 15:00-16:00".
Avíseme si cometí un error al comprender sus requisitos y necesito hacer algún cambio.