Adding do_background_work to avoid starvation of outgoing messages