lag() и lead() берут только по одной строке, а разрыв между активностями может быть больше
Вообще-то запрос должен включать опорную таблицу календаря, содержащего все даты периода (используем генератор или рекурсивный CTE). А создание добавляемых записей лучше выполнять не с помощью оконных функций, а латеральным джойном имеющихся данных к календарю.
Какой смысл делать SELECT *, если проверяется только существование записи? Гораздо разумнее выбирать какой-нибудь литерал, скажем, SELECT 1 или даже SELECT NULL.
Оно, конечно, "Чтобы правильно задать вопрос, надо знать бОльшую часть ответа". Но для того, чтобы грамотно задать вопрос, этого не требуется - достаточно наличия базовых знаний и владения терминологией. Кстати, это же необходимо, чтобы понять ответ.