The context is an entity instance uniquing object, not an in-memory database. The problem with multi-user edits is that you need locking to get things properly scheduled. The Context object is meant for single-thread contexts, not for multi-thread contexts.
Session objects are single threaded as in: single user. This means that sharing data among threads / users is done through the Application object in asp.net, which does support locking.
So if multi-user is a requirement for the session management, your session object isn't really user state management, but application state management. Is this correct?