I added the first name and last name fields not long ago for future purposes but have not yet surfaced them to the UI.
You cannot add custom properties as fields in the mp_Users table nor should you modify any existing tables.
The reason some custom profile properties do map to those columns is because those fields were added early in the project before we added the userproperties table.
I'm not sure of a good solution for you about sorting from ntext fields. in theory you could try using our SqlAzure data layer with MS SQL 2005 or 2008 and it should work but then you would always have to remember to upgrade using the SqlAzure packages. The reason I mention it is because in SqlAzure there is no ntext data type so we have to use nvarchar(max). I'm not sure if nvarchar(max) has the same sorting issue that ntext has, it might not.
However in mojoPortal code we are not sorting anything on those custom properties, we load them as a DataTable inside SiteUser but we cannot sort users by these properties with any efficiency regardless of data type.
If you need different functionality you might consider creating your own table to store your additional user properties and create your own business class to expose them, sort them search on them or whatever.
Hope it helps,