Instead of checking for a live process, check for unread data.

Add a unit test which tests proper behaviour.

Fixes #15941
Split `flag_eof` into `flag_eof_stdout` and `flag_eof_stderr`
Include a test case in order to check for full output from VT
We're sending a signal, not data.
White-space lint fix
Having data left to read does not mean the process is alive
Merge pull request #16579 from s0undt3ch/hotfix/vt-fixes

More VT fixes