Unless specified otherwise by the Court, child support is paid until the child is 19 years old. However, the factors you listed may be grounds to have child support modified. Income of the child that reduces that actual need is part of the calculation of child support.
I think the question is whether the reduction in the remaining payments is sufficient to offset the time and cost of modifying child support. For example, if you son will be 19 in ten months, and you can reduce your child support payments by $50, then the savings would only be $500 and would not be worth your time, money or effort to pursue a reduction. On the other hand I'm sure there are scenarios where it would make sense.