build_reconstruction_obligation_ledger reported a bundle with duplicate record IDs, or a reviewed obligation citing Evidence absent from the bundle, as unreadable_output and pointed callers at rea doctor. Both are caller input mistakes. Throw dedicated TypeError subclasses at those checks and map them to workflow input errors, following the NonCanonicalEvidenceBundleError approach from #3219 so unrelated TypeErrors stay protocol failures. Fixes #4444