Check negative reduced cost with *true* dual value

However, it stops early when no variable is generated, should be
fixed.