What if you call lst.__init__() while it is being sorted?  :-)
The invariant checks would break.
diff --git a/Objects/listobject.c b/Objects/listobject.c
index 61edd45..bd5b95a 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -2315,8 +2315,10 @@
 		return -1;
 
 	/* Verify list invariants established by PyType_GenericAlloc() */
-	assert(0 <= self->ob_size  &&  self->ob_size <= self->allocated);
-	assert(self->ob_item != NULL  ||  self->allocated == 0);
+	assert(0 <= self->ob_size);
+	assert(self->ob_size <= self->allocated || self->allocated == -1);
+	assert(self->ob_item != NULL ||
+	       self->allocated == 0 || self->allocated == -1);
 
 	/* Empty previous contents */
 	if (self->ob_item != NULL) {