not sure about 2d, but i found a solution that works in my3d game might help someone.
Create a 3d box, put it just behind the button in world space. size it. turn mesh render off, then make a child of canvas. It allows button push, but the box collider blocks objects behind it.