Travis, thanks for taking a look.
It turns out I had 2 core reasons a lot of messages were going to the _error queue. First, I had a missing try/catch/retry in one of my consumers, combined with a validation bug. And second, when running via upstart, loading a custom config from a relative path wasn't working because the working directory was the root of the file system. This path issue was causing initialization of the consumer to fail, hence the exhausted retries and moving of the message to _error. Now that i have those two things fixed, I shouldn't have as urgent of a need for moving items between queues, but its great to know how to move these messages via busdriver should I need to in the future.
But yeah, thanks for clarifying the usage of BusDriver. I'm sure this thread will come in handy for my team (and hopefully others) in the future. :)