Update hasFree() method of Pool to use current active count
Use pool status instead of worker status in worker task assignment