The problem with no 3 is that not every job can be measured in $$$. Especially when you are building an MVP and/or experimenting with features.
I think your approach is definitely valid for "traditional consulting" but a bit less so for more plain webdev work.