Is APC actually connected to ST. Where is it defined ?
These control characters are not actually original to Unicode, but inherited from older character set specifications, like ECMA-48, ISO/IEC 6429 and the ISO/IEC-8859 family of character encodings. Broadly speaking, these standards essentially agree with each other on C1 control characters (because they are being backwards compatible with each other and some even older specifications).
Since copies of ISO/IEC 6429 are being sold, I don't expect to find a legitimate copy of it freely available on the internet, but ECMA-48 says:
8.3.2 APC - APPLICATION PROGRAM COMMAND
Notation: (C1)
Representation: 09/15 or ESC 05/15
APC is used as the opening delimiter of a control string for application program use. The command string following may consist of bit combinations in the range 00/08 to 00/13 and 02/00 to 07/14. The control string is closed by the terminating delimiter STRING TERMINATOR (ST). The interpretation of the command string depends on the relevant application program.
and:
8.3.143 ST - STRING TERMINATOR
Notation: (C1)
Representation: 09/12 or ESC 05/12
ST is used as the closing delimiter of a control string opened by APPLICATION PROGRAM COMMAND (APC), DEVICE CONTROL STRING (DCS), OPERATING SYSTEM COMMAND (OSC), PRIVACY MESSAGE (PM), or START OF STRING (SOS).
Unicode defines only one control character within the C1 control character range: U+0085 Next Line (NEL). For any other characters within the C1 range, this part of the specification applies:
The semantics of the control codes are generally determined by the application with which they are used. However, in the absence of specific application uses, they may be interpreted according to the control function semantics specified in ISO/IEC 6429:1992.
I can't verify it here, but I'd expect ISO/IEC 6429 to pretty closely conform to what ECMA-48 said, as above. Also, the author of the terminal might have considered "being backwards compatible with pre-Unicode 7-bit and 8-bit character encodings, like ECMA-48" to be a specific application use.
So the terminal might legitimately interpret the characters between APC and ST as "I don't know what these are for, but I sure know these are not intended to be displayed as regular output."
The terminal might or might not be programmed react in some fashion to some specific strings encapsulated between APC and ST, and ignore any non-matching strings. Since the terminal window is the "last step before the human", it would be certainly able to assume that any application program command strings arriving to it are meant for the terminal to interpret and act on if applicable, and any such strings that are unrecognizable by the terminal must be errors.
Displaying an "invalid encoding" character or other error message would not be appropriate, as the string is validly encoded as "application-specific control string, not for displaying". So the answer to the titular question "where are the characters going?" is most likely: they are being discarded as parts of an invalid control string.
But note that the Unicode specification said "...may be interpreted...", not "...must be interpreted...". Therefore, the other terminal implementations' choice of just ignoring the APC and ST characters as non-printable control characters with no applicable meaning is not necessarily invalid either.
This question on Stack Overflow also discusses the control sequences involving the APC and ST control characters.
The accepted answer there says:
The reality is, APC is very rarely implemented – most systems never generate APC sequences and silently ignore any received. No application should send or interpret APC sequences unless it knows the other end of the connection is using them in a particular way – such as through a configuration option to enable their use, or if it (somehow) knows which terminal emulator is being used and knows that terminal emulator assigns them a particular meaning [...]