Make Sure That nodeEvaluationStarted/Ended Events Are Logged At Correct Time

The `nodeEvaluationStarted` / `nodeEvaluationEnded` events should only be logged when the evaluation really happens. Especially important is that the new value is already set when the `nodeEvaluationEnded` event is logged. This makes sense, because otherwise, if the new value has not been set yet, the evaluation had not really ended.