The bokeh document is only updated after the callback has finished

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.