DM: dump images for task failures too (but not skipped tasks)

This will get us back to uploading things like serialize-8888 mismatches.

BUG=skia:4806
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1614443002

Review URL: https://codereview.chromium.org/1614443002
diff --git a/dm/DM.cpp b/dm/DM.cpp
index 7302ebc..25a1263 100644
--- a/dm/DM.cpp
+++ b/dm/DM.cpp
@@ -815,7 +815,6 @@
             start(task->sink.tag.c_str(), task->src.tag, task->src.options, name.c_str());
             Error err = task->sink->draw(*task->src, &bitmap, &stream, &log);
             if (!err.isEmpty()) {
-                auto elapsed = now_ms() - timerStart;
                 if (err.isFatal()) {
                     fail(SkStringPrintf("%s %s %s %s: %s",
                                         task->sink.tag.c_str(),
@@ -825,10 +824,11 @@
                                         err.c_str()));
                 } else {
                     note.appendf(" (skipped: %s)", err.c_str());
+                    auto elapsed = now_ms() - timerStart;
+                    done(elapsed, task->sink.tag.c_str(), task->src.tag, task->src.options,
+                         name, note, log);
+                    return;
                 }
-                done(elapsed, task->sink.tag.c_str(), task->src.tag, task->src.options,
-                     name, note, log);
-                return;
             }
 
             // We're likely switching threads here, so we must capture by value, [=] or [foo,bar].
@@ -888,7 +888,8 @@
                 }
             });
         }
-        done(now_ms()-timerStart, task->sink.tag.c_str(), task->src.tag.c_str(), task->src.options.c_str(),
+        auto elapsed = now_ms() - timerStart;
+        done(elapsed, task->sink.tag.c_str(), task->src.tag.c_str(), task->src.options.c_str(),
              name, note, log);
     }