Cleanup threading, fixup user lists

* user lists to lightweight collections
* get rid of un needed Task.Run calls.  We no longer await inside of our calls, we pass out a running task and use ContinueWith to wrap/unwrap it.