Но ведь при sleep останавливается весь процесс?
А мне нужно, чтобы во время этой задержки бот реагировал на другие события...
То есть, в конечном итоге, мне нужно что-то вроде: если произошло то-то, выполнить это через ПОЛЧАСА, а пока продолжать работать дальше.
Можно по-другому. Каждую секунду проверять текущее время на соответствие нужному. Но как делать что-то КАЖДУЮ секунду, если там можно только описать реакцию на события?
Что же делать?..