ad 1) Chybové stavy zatím definované nejsou. Ale v tom Vašem kódu je definované, že <p> skončí při zavření druhého <div>u, a pak je vysoce pravděpodobné, že první <div> skončí s koncem <body>. Ať si tipnete jakkoliv, autor si za případný nehezký výsledek může sám a tenhle tip vám nedá tolik práce.
ad 2) V XML máte dva druhy uvozovek, máte možnost dvojího zápisu elementu (s obsahem či prázdný) a máte jmenné prostory. <mašinka:td xmlns:mašinka="http://www.w3.org/1999/xhtml" mašinka:colspan='2'/> — platí ten colspan nebo ne?
ad 3) To od vás pochází ten rozšířený omyl, že by se v atributech značících rozměry prvků měly uvádět jednotky? Nepřestáváte mě překvapovat.
ad parser) Každý XML procesor musí rozebírat interní podsadu DTD. U HTML tenhle požadavek nikdy nikdo nevyřkl a W3C prokazatelně počítá s tím, že se prohlížeče o DTD nestarají.
ad entity) Jak váš parser fungoval, vložil-li někdo v dokumentu parametrickou entitu do hodnoty atributu bez středníku?