updated to use async and simplify timeout logic
Refactored bot ticking
fixed broken tests and lint errors