move listener unblocking to a separate stack context via uloop timer