In short, don't do it, yet.
It causes a deadlock. It's a real nasty threading issue, caused in part by Python's delightful GIL and windows message processing.
There is a solution, and I'm working on it. Just wanted to warn people not to do it - yet!
…. and…. fixed.
In a callback, console.run now writes the output to a temp file, and then plays it back to the given stdout and stderr after the command has finished. A side effect is obviously that all the output comes at the end, but given the sorts of commands that could run as part of a callback, that shouldn't be too big a problem for most situations.
Couple more things to add, and one little fix to do, then I should release another version, probably within the next few days.