Correctly stop and close recovery threads and cleanups global context.

Also decreased total number of threads and processes created and used by pytests.
`ctx.monitor.stats.timer('main', 'started')` does not setup monitor - it adds timestamp to statistics that main process of recovery has been started. Global context has already been fully initialized before call of this `main` function. Processes from pool uses global context that is why the context should be made global before process pool setup.