Not familiar enough with QGIS, but what I have done with sectors in arcgis (for cell towers and tornado sirens) is created polygons to reflect their coverage. Decide the radius you want to reflect a specific power and an angle you want to represent the sweep. Draw a line from the center at angle azimuth - (sweep/2) for length = radius. Next, draw a tangent curve from that point with the sweep angle and azimuth you want, then return to your center point. And that gives you the polygon sector.
A bit more complicated here. Assuming you have a radius to define "nearby", you buffer a selection around your tower point using that radius (if you want sectors that mutually face each other, instead of a buffer, use a sector polygon out to your selection radius constructed like in step 2). Iterate through the towers selected. For each tower, use arctangent to get the bearing to it.
bearing = arctan((y1-y0)/(x1-x0)
Where x0,y0 is the location of your original tower and x1,y1 is the location of a selected tower.
Once you have the bearing, compare that to the azimuth of the sectors on the other tower. First, flip the bearing the opposite direction. e.g. if the angle is less than 180, add 180. If it is greater than 180, subtract 180. Then, if the flipped bearing lies between the sweep values for the sector on the selected tower, you have a match.
For example, if you bearing is 225 (due southwest), then the flipped bearing is 45 (due northwest). Assuming you have sectors facing 60, 180, and 300, with a sweep of 120 degrees. The first sector covers 0 to 120, the second covers 120 to 240, and the third covers 240 to 0. Only the first sector has the flipped bearing, 45, inside of it, so that is the sector that faces your sector.