Routing happens in a new task to prevent caller from getting stuck in pump.