AST: Be more careful about calls to ErrorType::get()
It's nice to be able to set a breakpoint on this method when
debugging the type checker, but recently we started unconditionally
calling it to get the circularity sentinel before kicking off a
request.
Instead, let's only call it when we're in the failure path.