ExecutionException을 단순 문자열로 바꾸면 실제 작업 실패 원인을 잃습니다.
T 값 반환
ExecutionException.getCause
CancellationException
InterruptedException
핵심: 호출자는 각 결과를 재시도·상위 실패·취소로 명시적으로 매핑합니다.