I've had lots of cars that hang around for months... there are 3 usual reasons.
1- Big project, small budget. One way I can keep the cost down a bit for them is to use it to fill any dead time I may have and not otherwise let it get in the way of better paying work.
2- Engine damaged beyond repair, can't find another one. If the customer really doesn't want to give up on the car they can pay a small fee to leave it with me and we keep looking for an engine.
3- Customer decided car was not worth repairing. Sometimes I see one I like and buy it, but it will have to wait til I have dead time since it is my own pet project.
It's very rare that they hang around because I don't know what's wrong with them and when I do get one that difficult it's a week or two, not months.