Calling Sproc From Another Server - runs as SA I have a sproc on ServerA that calls another sproc on ServerB

The servers are connected through linked server.

When the sproc gets called on ServerA it is called by the user login. However, then on ServerB, the 2nd sproc is called by SA.

I would have thought that the user credential would have passed through to ServerB rather than SA?
If it runs as sa on ServerB via a linked server when the user is logged into ServerA as a user login, then the sa account is configured in the linked server properties. If that's not what you want, then fix the linked server so that it uses the current security context instead.