Here's what I did. I made a separate function that searches for the color of the tree in a 20 x 20 pixel box. If the amount of colors in that box is less than 8, then the tree is cut down. Here is what I use:
SCAR Code:
function Cut_TreeCutDown: Boolean;
var
TPA : TPointArray;
begin
if not LoggedIn then Exit;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.18, 0.28);
FindColorsTolerance(TPA, 4481105, TP.x - 10, TP.y - 10, TP.x + 10, TP.y + 10, 14);
if(Length(TPA) < 8)then
begin
//Writeln('Length inside box: ' + IntToStr(Length(TPA)));
Result := True;
end;
SetColorSpeed2Modifiers(0.2, 0.2);
ColorToleranceSpeed(1);
end;
You can also have the script search for the color of the axe handle after your character starts chopping the tree, and when it doesn't find the handle, then the player isn't chopping, and should click again. I've never actually used this method, so I don't know exactly if it would work well or not.
Another thing I would suggest is to look at other woodcutting scripts, and see what they did, I've learned a lot that way.
However, if you're making the script reflection anyway, you should use animations. I would much rather see a reflection script that works flawless, than a color script that works 80% of the time.
Good luck with your next application, and I hope I helped. 
Cheers!