Background job with progress indicator