Is there a way, in Bash, to capture/redirect the output (and stderr?) of a process once it's already running?
No there is not, at least, not really reliably.
When a process is forked, it has (at least) its first three file descriptors arranged by its parent before the fork(), so it inherits them.
After the fork, without kernel code, there is nothing that any process other than that process can do to them.
OK, well, almost nothing. The system calls that support debuggers (e.g. gdb) can be used to poke memory and force function calls in a process. In a test-tube, this can be used to close and reopen these streams. In real life, there's no telling if the process will be in a really unfortunate state when you catch it in the debugger, and will respond by self-immolation if you try this.
It is possible using gdb. The question is already answered in this thread.