Шикарная статья про то, как должны быть сделаны правильные таймауты, от создателя библиотеки Trio. Отлично раскрыта проблема вложенных таймаутов (когда функция с таймаутом 10 секунд делает несколько долгих вызовов — сколько им ставить таймаут?) и тема cancellation token (после этой статьи я наконец до конца понял, зачем в он был понатыкан шарповом коде, который я читал).