Hi Sebastian.
I am agree that timeout is very useful and it is necessary for TaskActivity and other Waitable Activities. But there are many situations to activate the Waitable Acitivity. the 'time out' situation is just one of these situations. So I want to find a way to handle all of them. There may be cancel() or interrupt() method with a 'state' argument, but not timeout().
For example, now we saw TimerImpl could complete a TaskActivity with timeout status. So we add a timeout() method in ExternalActivityBehaviour. Some days later, we want to let people cancel a TaskActivity by hande, does we need add a cancelByHuman() method in ExternalActivityBehaviour, too? And so on. If there are more cancel activity situations, does we need add more xxx() methods in ExternalActivityBehaviour?
So, in my opinion, we should make a better plan for how to handle these activity cancellation situations, not just add a timeout() method in ExternalActivityBehaviour.