Keeping nested usages of locks to a minimum reduces the risk of deadlock. Indeed an immediate pool would acquire the lock then twice since the asynchronous flush isn't really asynchronous then.