Instead of raising exceptions from a graph action
while tasks are still running or if a set of tasks
was scheduled and the last task could not be
scheduled (for example) just add the failure to the
failure list and continue processing what is actively
running.
This ensures that we don't leave futures in an
abandoned state and clean up our executing work which
is what all good behaving software should try to do.
Change-Id: I9256d7afa86f922273586a98b27442b6ba87767c