My bad - I was confusing two things together and have edited a bad reference out of my original post. Having cleared that missunderstanding, using CallInterval seems reliable enough.

Thank you for pointing me into the right direction. My Service now downloads file "errors.txt" and then in OnProcessInput method I call the following to delete "data.txt" from the same folder where "errors.txt" was downloaded from:

If ..Adapter.delete("data.txt", pInput.Attributes("FTPDir") ){  <log that deletion was successful> }

We solved the encoding issue by setting the CHARSET value in the inbound FTP adapter's settings to "@UTF8".

I do not know if this was the right way to fix this and I need to do more research with it.   Setting the CHARSET value to "cp1252" or "hebrew" or "windows-1252" or "cyrillic" - basically anything other than "binary" or "UTF-8" - seems to work just fine. I really don't understand character sets right now.

Here are some pages I ran into while researching this:

I wrote my comment below as a new answer, because apparently I had a "I don't know how to community.intersystems" moment.

A good point. Unfortunately I have that already set as "UTF-8". I added both the points you mentioned into my original post and in hindsight should have done that initially, but forgot. 

Yes, normally that does sound like the logical setting, but sFTP connection only allows binary. UTF-8 or ansi etc. are not selectable.