Let's break it down:
1. In contract work law, the contractor is called "Unternehmer" and the client "Besteller."
2. Negligence describes an action taken in disregard of the usual standard of care in traffic (action = doing or omitting).
3. The "usual" standard of care is measured by what a reasonable and normally thinking person would normally expect regarding the action. If one deviates slightly from this, it would be "slight" negligence. Gross negligence is characterized by the fact that the disregard of care should not have happened here. Example: You knew the fence was there, could have seen it, but didn’t want to turn around while reversing with the wheel loader because the pretty blonde was watching in front, and turning around would somehow look uncool. ;)
Limiting liability to gross negligence and intent (knowing + wanting) is absolutely common. Liability for mere slight negligence is regularly excluded because otherwise liability would arise from the smallest mistakes.
Questions answered?
Uh, no. Subs: A contractual relationship exists only between you and the general contractor / main contractor. They contract with the subs. If the subs mess up, the general contractor / main contractor is liable. Thus, they are only liable within the scope of the liability agreement made with the client, if there is one (for example, here).