It sounds like the OP was burned at least once by a freelancer in the past. We come across folks like this every so often at matchist (http://matchist.com).
The biggest problem we often see (and I've seen in my previous experience as a freelance developer) is a lack of trust between the two parties. The client doesn't trust the developer to do their job and/or the developer doesn't trust the client to do their job.
The OP has some good ideas about how to establish trust between the two parties (communicating regularly and effectively, but most of his ideas appear to stem from the fact that he simply doesn't trust freelancers from the get go.
The biggest problem we often see (and I've seen in my previous experience as a freelance developer) is a lack of trust between the two parties. The client doesn't trust the developer to do their job and/or the developer doesn't trust the client to do their job.
The OP has some good ideas about how to establish trust between the two parties (communicating regularly and effectively, but most of his ideas appear to stem from the fact that he simply doesn't trust freelancers from the get go.