Я думаю - ситуация нередкая. Заказчик - как типичный бизнес может всего тоже не знать. Он может не знать деталей которые сам получает чуть позже. Так наш мир устроен. Scrum/Agile и никакого ватерфола.
Если проанализировать историю то было 2 события.
Первое
Я с проектом ознакомился в общем, глянул макеты, оценил сервисную часть в общих чертах с слов заказчика
Второе
По итогу сервисная часть оказалась жутко сложной и объемной
Вот что случилось между 1 и 2 событием? Почему так получилось что не было понято с самого начала? Я вобщем-то автора понимаю. Я - тоже интраверт и тоже люблю начинать код писать без лишних разговоров. А в этом как раз и ошибка.
Что делать? Во первых не нужно врать заказчику. Бизнес любит честность в отношениях. Скажи что твой косяк. Недооценил. Недооценка сложности - частая ситуация. Как выйти из этого.
1) Поговорить об упрощении задания. Выдай предложение при котором ты смог бы просто закончить работающий прототип.
2) Предложить альтернативный план который потребует больше денег и времени. Поищи сам себе консультантов которые помогут.
Бросать эту разработку я считаю не надо. Это малодушие. Если выгораешь и работаешь по 12 часов - тоже сообщай заказчику. Это тоже честная и понятная позиция.