시간 제한 Condition은 하나의 마감 시각을 공유한다

허위 각성과 lock 재획득 시간까지 전체 예산에서 차감해야 합니다.

deadline

now + timeout

lock

소유권 획득

술어

충족이면 완료

awaitNanos

남은 예산만 대기

remaining

0 이하면 시간초과

조건이 false이고 예산이 남으면 다시 대기

핵심: awaitNanos의 남은 값이 양수여도 술어를 다시 확인하고, 예산이 끝나면 TIMEOUT으로 종료합니다.