Try setting '_lightmapscale 2' in the worldspawn and check if it helps. This lowers the resolution of the calculated lightmap, resulting in less 'sharp' shadows. To keep the shadow 'sharp' in places where you really want (like a light shining through a grate for example) func_group the brushes that recieve the shadow and give the func_group a _lightmapscale 1, or lower. You can use different _lightmapscale settings throughout your map, giving you a good way of striking a balance between compile time/BSP filesize and looks. Good luck!