This is unavoidable I'm afraid as using INPUT seems to enter a modal loop where only the 3D objects + the input are drawn.
Normally this is what happens in pseudo code:
function Sync()
Render3DStuff()
Draw2DStuff()
FlipToScreen()
endfunction
Input goes to a function doing this which runs until enter is pressed
function Input()
Render3DStuff()
DrawInputPrompt() <== Other 2D ignored
FlipToScreen()
endfunction
The only way to recitfy this is to write your own routine.
What you could do is to put all of the 2D drawing in one function, then you can call that from your custom Input routine.
Re print statements, this is obviously a bug, as Lee didn't test it properly.