As part of my job I do occasionally have to deal with customers and let me tell you, over the last few years people have really become rude and pushy. Everything from unrealistic expectations on prices to expectations on how to solve whatever problems they might be having.
The first thing I was taught about customer service is for YOU to set the expectations. Having been on both sides of the auto mechanic coin I can say with a relative amount of certainty that a major problem in your business is a failure to set those expectations correctly. Do NOT tell a customer you don't know how long it will take or how much it will cost. Sure, I understand that problems pop up that may alter your projections, but you should be sure to set some realistic projections of time and cost from the start.
Most mechanics I've been to are totally open ended on cost and timeframe for work to be complete. That's unacceptable. Would you accept the same from someone building your house? Yeah, we'll build it, maybe this year, maybe next, maybe in a decade, and it might cost $100k or maybe $1 million, we just don't know and won't tell you anything definite. Would you buy a house from a builder who told you that?
Far too many mechanics try to sell themselves using those same standards, and that's why customers have unrealistic expectations and are rude when you fail to meet those expectations. You failed to do your job the moment you allowed them to have those expectations in the first place. Set a realistic time frame and a realistic price, and then do everything you possibly can to finish the job ahead of schedule and under budget. Do that and you'll have a happy customer every time.