actually, I only need access to fields of Task that I added.  That way, as the metrics are collected, I can stuff them directly into the Task, and then they are easy to send back along w/ the task results.  I'll highlight the places in the code where its used.

The TaskContext is not available in the Executor when its sending task results back -- would it be better if I put the metrics into the TaskContext, made a Task store a reference to the TaskContext, and then extract the metrics that way at the end of the Task?