1. the session was waiting on OS in my experience, restarting sql is the only way to clean it up unless you can find related OS process and kill it.
2. should transfer as less data as possible in cross platform query, so reduce result set on data source is better way to go.