Thank you for raising this issue with us. To be honest, this looks like a bug in our system, the renderFinished delegate method shouldn't be getting called more than once on a chart redraw, regardless of whether the chart data has been reloaded or not. I've raised an issue in our backlog to address this.
The current behaviour is as you've seen. If you just redraw the chart without a reload, then you get the behaviour you'd expect - you get a single call to renderStarted, followed by a single call to renderFinished.
If you reload your data then redraw your chart, you get a single call to renderStarted, followed by two calls to renderFinished. When we've finished reloading data, we make another call to render the chart canvas, which causes the extra call to the delegate. The bug is that renderFinished shouldn't be called on the delegate until we've completely finished rendering, which doesn't appear to be the case at the moment.
Apologies for the unexpected behaviour you've seen, I hope this explanation has helped. We'll let you know when this issue has been addressed.