A version of "sneaky throw" to relay exceptions.
The sneaky part of sneaky throw, relying on generics limitations to evade compiler complaints about rethrowing unchecked exceptions.
Hash table of exceptions thrown by tasks, to enable reporting by callers. Because exceptions are rare, we don't directly keep them with task objects, but instead use a weak ref table. Note that cancellation exceptions don't appear in the table, but are instead recorded as status values.
Lock protecting access to exceptionTable.