When I get stuck in this stuff is I like to spend some time writing a question, like above, and I leave it until the next day before posting. Last night I was tired and just hit the post button. And as usual, trying unsuccessfully to get to sleep, it occurred to me what was the problem/solution.
"this cannot be done" is correct in this circumstance...
I am running 3 loops. 2 of which access the internet and require a background thread which returns a result. The solution, at least in this case, is to take out the loops, put a couple of buttons on the UI, and let the user activate the process directly. The result can then be simply deposited into a TextBox or a global variable using runOnUiThread. I know this works because it did in the test case, simple subset program of my larger App code, when I was exploring the idea.
Happily, life goes on