added ImmutableProxiedSession to ensure SessionListeners don't modify a Session during an onStop/onExpired notification