For non-convex objects non-overlapping transparency is not easily doable. However, you could try to render the object last (for example with a second NOSKY (?) view), then transmit the OutPos from the vertex shader to the pixel shader, import it as ProjTex and
ProjTex.xy = ProjTex.xy/ProjTex.z;
ProjTex.xy = ProjTex.xy*0.5 + 0.5;
ProjTex.y = 1.0-ProjTex.y;
use the transformed ProjTex to get the current pixel on the model on the screen and thus camera.bmap position. Now tex2D that content and you can realize improved transparency, i.e. by calculating your default Color pixel shader output and lerp() it with the ProjTex-camera.bmap result (I do something similar in my side-scroller).
Btw. in my game I've simply created a noise texture and randomize two noise values each frame which I use as a tex2D offset, this gives an acceptable noise with little to no effort and performance impact.