'ext' vs 'extensions'?

The ‘ext’ space is for adhoc storage. Plugins should never use this. Users use it when they just need to store some more stuff. They allow you to add properties to an object (typically primitives).

Extensions are a more formal mechanism and is how plugins should extend objects. They allow you to attach a new object to an object.

Adding an extension also adds a configure method:

project.extensions.create("foo", Foo)
  project.foo {
  somePropertyOnFoo = "bar"
}

There are some functional differences, but this is the conceptual difference.