Context::DeadlineExceeded
Inherits Context::Cancelled < Exception < Reference < Object
Raised instead of Cancelled when cancellation was caused by a deadline.
DeadlineExceeded is a Cancelled, so rescue Context::Cancelled still
catches it; rescue DeadlineExceeded to distinguish timeouts from manual
cancellation.