"contractor" vs. "construction company"
Solution 1:
I agree with your distinction between "contractor" and "construction company."
Why is contractor used beyond the construction field? I believe first, because in America terms often are imported from other fields to impart status. For example, the term "intern" or "interne" was originally used only in the medical field to apply to young doctors in training. Now it's applied to anyone working at a company ostensibly for training, usually college students. Therefore, it probably sounded more impressive to someone to say he or she was a "contractor" instead of a temporary employee, which is what many contractors are.
Second, contractors, or more formally, "independent contractors," often literally have a contract, that is, an agreement, that defines the responsibilities of the individual to the employer.
Solution 2:
I will add that the term 'general contractor' is, very specifically, the lead construction firm on a construction project (as opposed to a sub-contractor). In this context, the term general contractor has likely been shortened, for linguistic convenience, to 'contractor.' There is no doubt that the use of this term for a specific trade is confusing, when the term is more more broadly and accurately used to clarify a financial or employment arrangement, with specific legal and tax ramifications. However, esp. when discussed in context, most will understand the term 'contractor' to be referring to a person or company performing construction services.