[dynamicIO] log dynamic validation errors consistently in dev (#78575)
In dev when dynamicIO is enabled we perform a validating prerender to
look for code that would be a build error in `next build`. However due
to the construction of the earlier implementation of this code some
validation messages were being suppressed because they were conveyed as
a thrown error rather than through console.error. This change updates
the mechanism by which we raise these issues in dev so they are
consistently messaged.
stacked on #78574