add dataset integration tests, make tox cleanup even when test fails, extract polling and syncing of datasetes into thread