Haha sent me this link saying that maybe my new SteemBot might help. Actually it doesn't have a Queue system yet for this purpose but I think having it on that would be an amazing idea!
Anyhow, I think you can accomplish this task with much less code in a simple queue system. You can use this queue in a shared manner or have one queue array for each function if you want a 20sec queue and a 3 sec queue.
Notice that I used some ES6 syntax to make it more clear. If your env doesn't support it just add babel-register on top of your code or use babel-cli to compile it. Also better not to run it in jsbin, it's not supposed to work there. Hope it helps.
RE: Programmers of STEEM, Mind Lending KLYE Some of Your Mind?