Alternatively, this should work as well:
def on_button_clicked():
button.disabled = True
def process_request():
time.sleep(2)
information.value = information.value+'blablabla\n'
button.disabled = False
curdoc().add_next_tick_callback(process_request)
In essence, if you need the queued document updates (i.e. changes to some of the models) be dispatched to the clients, you have to give the control back to the underlying Tornado loop. Scheduling the next piece of work with add_next_tick_callback does exactly that.