You may want to check
list-processes is an interactive compiled Lisp function in
(list-processes &optional QUERY-ONLY BUFFER)
Display a list of all processes that are Emacs sub-processes.
If optional argument
QUERY-ONLY is non-nil, only processes with
query-on-exit flag set are listed.
Any process listed as exited or signaled is actually eliminated
after the listing is made.
BUFFER specifies a buffer to use, instead of
The return value is always
This function lists only processes that were launched by Emacs. To
see other processes running on the system, use ‘
It seems to miss a lot of features you need, but with a bit coding you may get the desired results (if you do so, please send your patches upstream, I’d occasionally like to see this feature in Emacs.) That said, I couldn’t find any better ready-made candidates to your problem.