Personally, I just have them sign a work order before starting work for the day. This work order includes the date, a detailed description of work to be performed, customer address and contact info, as well as the price of course. There is also a clause on the w.o. and the estimate sheet that states "price is subject to change if additional work is requested". I explain to the customer that this work order is basically a permission slip for me to work on their property. If I tell them it's to make sure they pay me, they might be offended. If someone does not want to sign a work order, that's a good sign they won't pay when you're done. As far as a cancellation period, I haven't addressed that issue yet. I have been burned a couple of times too. I am a solo operation, so I try to keep things as simple as possible. I'm surprised no one else has any more input on this. Hope this helps.
Brandon