You should set the SFSB timeout LONGER than the session timeout (try twice as long), not the same length.
And check if your @Remove method (or its interceptors) is throwing an exception. This is the most likely explanation for the problem. There is a bug in JBoss EJB3 that means an exception that occurs while removing an SFSB results in a NoSuchObjectException. Use your debugger to check this.
Out of interest, what's the reason for making the SFSB so much longer than the HTTP session timeout?
You could have requests to the server that do not touch the SFSB.