This looks like a good start, though I think you don't need to move quite as much code into runDataRef as you do in imageDifference.py. I had a few other suggestions for moving code blocks out of run and into new methods, but that might be beyond the scope of this ticket. I don't think it would be much work, but I will leave it up to you whether to include that now or later.
Are there really no unit tests of ImageDifferenceTask? In the absence of tests you will need to run image differencing both on this branch and on master with different settings: subtract='AL'/'zogy', doSelectSources=True/False, doUseRegister=True/False, doMatchSources=True/False, doDetection=True/False. You don't need to run every combination between all these settings, but it would be good to do a run with each one turned on and off with the rest left at their defaults.