make langnego fully async; tests + docs