I know this was suggested and chosen to mimic the logging API - but it could be argued that that API is not worthy of mimicking.

There are only 2 conditions that will emit something as far as I can tell:

Error: there is a fatal flaw in your model construction, we will stop now
Warning: there is something not quite right, but not completely broken, you should know about that

When would I use Critical instead of Error?

Seems like the VAST majority of cases (and 100% of builtin checks) are going to be Error - there shouldn't be many ways in which your model is "partially"' working when it comes to these checks.