i deal with this for a living, im an estimator/project manager for a national commercial contracting company.
dont worry about people liening your property. allot of newby contractors like to throw that word around because they have never actually been through the process.
BEFORE they lien the property, you will send them a simple one or two paragraph letter stating what work is outside of the written expectations and you will reference the agreement. You will state the amount you are holding. you dont need to state how you came up with the amount but it needs to be reflective of the incorrect work. aka: it will cost $XXX amount for me to hire another contractor to come in and fix this so I held $XXX.
IF/WHEN they lien your property: you will send them a letter demanding them to sue you. at that point the clock starts ticking, they have 30 days to sue you or you can have the lien removed AND they are responsible for any costs associated with you taking the time to write the letter, find a different contractor, waste your gas, etc... make sure you withheld enough :)
if they do sue you, as long as you sent them that letter before they file the lien then it will simply be a matter of the court agreeing that you were reasonable with the amount you withheld. by the way, if possible, make sure to hold enough that it goes above $10k. this means it cannot go to small claims court in IL, much more difficult to sue someone above that amount without having to lawyer up at which point they will likely just try to agree to an amount with you in my experience.
Simple way to avoid all of this: have your expectations clear and in writing, like you mentioned AND add in Inspections/milestones. this protects both of you from having to deal with this crap. example: scrape garage: inspection, paint coat #1: inspection, paint coat #2:inspection. agree to a basic schedule of values for each item prior to start of work, scraping is worth XXX, etc.. this allows you to pay based off of milestones/work completed.
Some items you should be around to inspect during install to catch problems while they are occuring, its good project management, like tile being installed poorly, although that does not change the responsibility for the subcontractor to install the tile per your written expectations.
if you notice in commercial construction there is an inspector onsite making daily logs every day. his logs describe what was done, and anything that was not done in accordance with the specifications. this is for a reason, they can be used in a court as a reference.
Part of the reason for inspections is to allow the contractor to receive partial payments for work accepted up to that point. most jobs its hard for small contractors to cash flow an entire project, needs to atleast be payments made every 30 days for work accepted but they can be daily if you choose as long as it is based on the schedule of values for work completed. (very common to hold retainage of 10% of every payment until all work is complete, site has been cleaned up and accepted. you would need to state the retainage in the contract.
This is why I prefer to write my own contracts. you dont have to be a lawyer to write them up, there are plenty of examples out there that can help. they dont need to be huge, even the back of a napkin can be contractually binding if enough detail is provided. just a couple pages, im sure once you read some examples you will enjoy writing it. then when you have a good one written up you can always reuse, just need to change the "Scope" section of the contract. one thing ive noticed, keep the contracts short, too many pages simply scares off small time contractors and really it only needs to be a couple pages to be covered for most residential projects.