The communication with gdb works well... Also using libgdb might be faster, it probably does not solve any other issues. In fact, it means that any crashes killing gdb (rare, but do happen), if those crashes are in libgdb they could take down the entire IDE. Also libgdb is not easily obtained on some platforms.
At least on Linux we also get a separate I/O stream for the apps stdin/stdout. On Mac (and Freebsd?) that does not work. (yet)
Btw, I forgot: If you have a stable lldb for your platform, it may support launching a terminal. At least lldb on Mac can do that. I do not know if it has this on other platforms. And also lldb on other Platforms does not work very well with fpc compiled apps... As far as my testing goes. However, the IDE supports lldb.
Manpower: Well I am the person that currently looks after most debugging related issues. The IDE has support for gdb, gdb+ssh, gdb-server, lldb, fpdebug, and some combinations of the formers (those are all different debugger backends, that can be used). That is a lot of debugger to maintain. On top of which I look after SynEdit and various other bits. (Not complaining... wouldn't do them if I dint want to)
I actually wanted to have the vte for many years, despite the fact that I do not need it for myself at all. It is for the last part, that it is quite low on the priority list.
Lazarus supports "run without debug" => but unfortunately that does not change your "run parameters" where you can set a "launching terminal".
However "run parameters" allow you to setup several modes, that you can then quickly change (little drop down on the green run button).
So with that, you can do "run without debugger" in a real terminal, all launched from within the IDE.
Manpower: even adding an existing component takes time. It may end up in some trial and error, and fixing real simple stuff.
And last not least.
There (afaik) was a time, when running in the debugger and using a terminal started by the IDE worked.... Afaik (but I cant test, as I do not have a terminal for which the following applies):
If you have a terminal, that starts your app in the same process as the terminal (so it does not fork a new process), then gdb should pick up your app.
I do not know if such a terminal still exists.