About sprites - may be env_lightglow better for this (imho sprites must die). Anyway - sprite entity have params, that define then sprite will be hidden by geometry.
About glass and opacity bugs - use "$alphatest" "1" parameter on metal celling vmt; "$translucent" "1" - it works with bugs, then one translucent material seen thry anower translucent material. Also you can use "$alpha" "70" parameter for glass - it dont uses alphachannels, just make texture opacity on 70% - may be it will work fine.