Hello Viktor,
Your hypothesis that
> the candidate context means that cplex has found a feasible solution
is actually incorrect. The CANDIDATE context is intended to allow the user to reject the solution, but as the documentation says in
https://www.ibm.com/docs/en/icos/20.1.0?topic=context-cpx-callbackcontext-candidate: If the callback is invoked for a feasible point and does not reject the candidate, this is no guarantee that the candidate will become the new incumbent. The callback is only one of many feasibility tests that are performed on a candidate solution.
In other words, the CANDIDATE context is a tool to ensure the soundness of the results, it's not a tool to measure progress.
I hope this helps.
------------------------------
Xavier
------------------------------