- Replace direct meta.get('ocr_status') read with validate_ocr_meta() call
in run_deep_reading() to properly validate OCR completion status
- Fixes bug where meta.json with ocr_status=done but missing files
incorrectly marked paper as ready for deep reading
- validate_ocr_meta() checks 7 conditions before returning 'done':
file existence, sizes, page markers, etc.
- done_incomplete status is correctly treated as blocked (not ready)
by existing blocked logic at line 2810
- Add regression test: test_smoke_deep_reading_done_incomplete_is_blocked