The lack of the usual status bar messages was due to sub-classing
methods in TextEditorActionContributor and not calling the super methods.
The lack of the spell-checker was due to using the constructor
TextSourceViewerConfiguration() -- i.e. without passing in a preference
store.
Using
TextSourceViewerConfiguration(IPreferenceStore preferenceStore)
instead fixed things.