This feels wrong. If `task.get()` throws the Throwable from the task's thread, then we don't want to propagate that exception here. We just want to should the error. Even if it was "fatal" such as an OOME then we should show the error. This thread will fail soon enough if it genuinely was fatal.

On the other hand, if getValueForDisplay threw a fatal exception then we do want to catch that (but we don't want to display that exception as though it was the task's!).