Hey, great question. There is a bit more nuance in the way things work. There are three timeout options for activities:
ScheduleToStart - Maximum time a Workflow should wait for a Worker to start executing the Activity. This is commonly used for checking if all workers are down or are not able to keep up with current request rate.
StartToClose - Maximum time an Activity can take to execute after it was picked by a Worker. If this is exceeded the Activity will be retried.
ScheduleToClose - Maximum time from when the Workflow requests an Activity execution to its completion including retries
As you can see, one of the options
StartToClose functions on a per-retry basis while
ScheduleToClose takes all retries into account. If your
ScheduleToStart timeout is exceeded, the activity will not be retried. I hope this clears things up