Use background timers for tasks
Created by: agraubert
It's kinda dumb that I have the background tasks run when messages are sent, but because the whole bot runs in an async event loop, multithreading is weird. I haven't spent more than a few minutes looking for the right way to spawn threads inside an event loop though, so I'm sure there's a proper way to do it