You can register you own JUser class using JLoader::register('JUser', JPATH_ROOT . 'path/to/your/class/juser.php');
Put this in your application bootstrap, immediately after the call to JLoader::setup();
For another approach, look at
https://github.com/JTracker/jissues. It registers the J prefix to the libraries/tracker folder, and then the autoloader looks in that directory first for all classes that it loads, and then moves on to check the other folders if it can't find them in libraries/tracker.
As for your session/user issue, I don't think it's supposed to work that way. What version of the platform are you using. In the latest version, I am not even seeing the loadSession method in JApplication. Further, JApplication exists in the Legacy tree, are you meaning that you are using JApplicationWeb::loadSession? because I see that exists.