i have realized that a lot of the complexity and cognitive overhead
is downstream from trying to prematurely handle errors.
so i'm going to do the erlang thing and just assert/assume everything
worked perfectly and let the errors speak for themselves.
so re "task fails successfully": now instead of getting an NYI that
looks like a success result, we're now properly getting an error.