To be consistent with other explanations, please add following scenario as well to the explanation of option 2.
Existing is : "In case of a server crash or if a system exception is thrown from the instance’s method to the container, the remove() method will not be called."
Also mention that, @PreDestroy method is not called if Timeout occurs when stateful session bean is passivated.
I hope this helps

Thanks,
Prakash Yaji