Simplify loop vars
Move semaphore init/destroy into constructor/destructor (regardless if reaper thread is used) to  prevent (theoretical) init/destroy race condition on start/stop