Well for some reason -
GLES20.GlBlendFuncSeparate( GLES20.GlSrcAlpha, GLES20.GlOneMinusSrcAlpha, GLES20.GlZero, GLES20.GlOne );
fixed my problem. How or why I dont know.
GLES20.GlBlendFunc( GLES20.GlSrcAlpha, GLES20.GlOneMinusSrcAlpha );
was already giving me the correct blending arithmetic - but for some reason it corrects the pixel address arithmetic..