Предпочитаю в принципе работать только по почасовой ставке, потому что так честнее для всех. Фрилансер получает ровно столько, сколько проработал. Клиент тоже платит столько, сколько по факту вышло работы.
Также при часовой оплате отпадает надобность оценивать каждую мелочь. Клиент просто просит ещё что-нибудь допилить, и ты спокойно это делаешь и потом выставляешь счёт за фактически потраченное время.
клиенту ведь нужно как-то подтвердить, что ты все эти часы делом был занят, а не попросту отсутствовал или сериал смотрел. Как это происходит?
Ваше подтверждение - это выполненная работа.
Большинству клиентов не требуется подтверждать каждое телодвижение. Достаточно, чтобы общее время на задачу соответствовало тому, на что он рассчитывал.
Но я бы рекомендовал взять за привычку пользоваться тайм трекером. Например toggl. Любую задачу, над которой работаешь, отмечать в трекере. Так по завершению недели у тебя будет хороший отчёт о том, что ты делал и как долго. С таким отчётом в принципе любые вопросы отпадают.
По поводу обмана. Очевидно, что у фрилансера есть 1000 и 1 способ обмануть клиента. Если у вас нет доверия друг к другу, то лучше вообще не начинать отношения.
Если клиент рассчитывал например, что ты сделаешь задачу за 10 часов, то ему всё равно, чесал ты жопу половину из этого времени, или работал непрерывно. Главное, чтобы результат соответствовал потраченному времени.
По поводу непредвиденных увеличений срока. В идеале все такие моменты должны быть предусмотрены ещё на берегу. Т.е. ты должен предугадать, где у тебя могут быть проблемы и сразу озвучить клиенту вилку "если получится, то сделаю быстро, но возможно что придётся идти сложным путём и тогда потребуется +10 часов". Если такое вылезло внезапно, то тут уже всё индивидуально. Иногда можно что-то допилить за свой счёт (не логировать время), иногда можно объяснить клиенту и увеличить стоимость.
Ну и общая рекомендация - не работай с жлобами.