Умение точно оценить срок — это одно из важных умений программиста. Разработчик должен оценить срок с точностью плюс-минус 50% от реального исходя из сложности задачи и своей компетенции. Вы же сами пишете, что опытные люди назвали срок 1+ месяц. Скорее всего они за 2 месяца как раз и сделали бы.
Что делать в следующий раз — держать руку на курсе: требовать показывать что сделано, вводить этапы и т. п. Главное не пускать на самотек.
Он ошибся со сроками, значит уже не справился. Кто даст гарантию что остальные 70% он будет делать 5 месяцев? Надежнее дать другому разработчику с вменяемой репутацией.
Не его вина в том смысле, что заказчик не должен дать денег и думать что теперь все будет ок. Надо было контролировать. А то через 2 месяца (1.5 месяца просрочки) внезапно оказалось сделано 30% работы.