Is there a way to implement dynamic timeout for a coroutine? Basically if I'm running callable A and B in parallel with some timeout t, I want to extend the timeout of callable A based on the response from callable B (which should be faster). Would I just have to avoid using withTimeout and instead keep track of the time and cancel manually?