This link helped me out a lot: http://msdn2.microsoft.com/en-us/library/3s8xdz5c(vs.71).aspx
LINQ did need to be taken out of the equation so I could focus on getting a good model for updating the list box with data. Additionally, calling .ToArray off of LINQ worked perfect to get the query to happen on the seperate thread.
I imagine my work can all be improved but at least I have a frame of reference now. Thanks all!