I think it is desirable to use as much of the existing debugger functionality as possible, and to add an "elaborate mechanism in the debugger" that allows it to be dynamically extended in functionality.
It would certainly be possible to load dlls inside the debugger itself to extend it; though maybe simply loading a batch file containing debugger commands may allow to do a lot of things already without requiring compiling new code.
all of this would be possible. The only missing point so far is stopping the debugger execution at any point in time (like a ctrl-c for example), and also the one of debugged program. this may be the trickier part.
A+