The Documents agreement row only showed "Download" when a signed PDF was
already stored, which happens at signing only if the render runtime
(WeasyPrint) succeeded — so a signed agreement wrongly stayed on "View" when
the render was unavailable. Signal "signed" from the signature record existing
(not the stored blob), and resolve the PDF at download time: serve the stored
artifact, or re-render it from the signature's details if the blob is missing.
Now: signed -> Download; the download still needs the render runtime available
at sign or download time to produce the file.