Output widget disappears as soon as other widget is used

This is because when a button is clicked once, it returns true during the first rerun of the script.
During the second rerun when you interact with some other widget, the button click returns false since it’s not clicked during the second rerun.

One solution would be to use session states to remember button clicks, and probably another button to clear that state. This should help with session states: