Is there any way to pre-declare that I want to defer baking the role from a
class? (Which I guess would make it an error to reference that role at run
time in any way, until I'd issued a second declaration that I was done, and
baking season is open)

I fear this is the general problem to know in what runstate you are.
Note that your compile time is the compiler's compile time. That is
the interface you are asking for would allow you to defer the creation
of roles from classes you are dealing with for your subordinate
runtime. IOW, freezing classes into roles happens at CHECK time. This
raises the question if CHECK { class Foo is also { has $.x } } should
throw an exception at compile time, i.e. end in the error "can't
re-open Foo at CHECK time".
In general I would argue that certain parts of the runtime environment
are frozen for that runtime. E.g. Foo := class NewFoo {...} should
throw an exception that can only be handled by the compile time that
bred it. This compile time can then be so kind to maintain the state
of the runtime, replace the class and *resume* the runtime. In a runtime
that is a native environment such exception catching might simply result
in an abortion.
Regards, TSa.
--
"The unavoidable price of reliability is simplicity" -- C.A.R. Hoare
"Simplicity does not precede complexity, but follows it." -- A.J. Perlis
1 + 2 + 3 + 4 + ... = -1/12 -- Srinivasa Ramanujan