A second Asp.net State Server Service cannot take over if the first one fails without loosing the part of session info stored on the first server. New sessions will be handled fine by the second server. To get this behaviour you need to set up session state partitioning, see Jon Galloways answer.
This behaviour is by design, the Asp.net state service does not do replication of the session data between servers.
If you need out of process session data replicated to several servers you must either use one of the commercial offerings (ScaleOut, for instance) or wait for Microsoft Project Velocity to become production ready. Personally I am eagerly awaiting the release of Velocity and will switch to it from Asp.net state server as soon as I feel confident in the product.
More on Velocity for session state for Asp.net:
http://blogs.msdn.com/velocity/archive/2008/06/05/how-to-use-session-store-provider-microsoft-project-code-named-velocity.aspx