ConvertDateFormat is not a Pega OTB Function, it must be a Function implemented at your client site, so check the code of that Function implementation to determine why it is giving a bad result for the month.
The use of capital D's is likely not going to give you the result you want. Part of me is curious that it is still giving you '19', but that's again up to the implementation of ConvertDateFormat.
If the intention is for it to emulate Java's SimpleDateFormat class (like the Pega OTB date formatting functions do), you should use lower-case 'd' to represent the day of the month.
Similarly, it should use capital 'H' to represent the hour in 24-hour format
FormatDateTime is expecting the timestamp portion to be in the format yyyyMMdd'T'HHmmss.SSS' 'z
For your example, that is: 20200819T031458.000 EDT
If the input doesn't match this format, then FormatDateTime seems to return a blank value
For any other readers, the 'EDT' could be any valid timezone.
Typically FormatDateTime is used to format a Pega (GMT) timestamp to some other format and/or timezone.
Ultimately the format of the input that FormatDateTime expects is the outcome you are originally looking for. ConvertDateFormat appears to be your site-specific timestamp-parsing function, which if it was doing the job you wanted it to, you wouldn't have to explore FormatDateTime.
Work on getting your local implementation of ConvertDateFormat to parse the timestamp correctly. Split out your parsing and formatting components of this as it could be either of them that is breaking - test them independently. Consider then replacing your formatting component with FormatDateTime given it is available OTB.
(Pega doesn't ship an all-purpose timestamp-parsing function OTB, parseDateString parses from some commonly used formats, but not yours)