Subtracting the pixel value from the actual or expected value of the dark object is the idea. I will advice that you do that on the natural DN before converting to TOA reflectance. And since you are using QGIS for the analysis, I will suggest that you use the "Semi Auto Classification Plugin" to do the raster processing.
Cheers.