I don't know if this will help you (maybe post your blend file?) but I recently learned about the Offset Edges plugin (needs to be downloaded and installed from file). This works something like the way I would expect the "Shrink/Fatten" tool to work with a loop of edges--it will extrude them (or duplicate them, or move them) inwards or outwards in a way that does not distort the outline of the loop.
How you might use that here, in a sample file that is maybe a little like your example.
- The face to be created is between the top edge of the cylinder and the surrounding square edge.
- Since these are two separate edge loops, we will offset each of them separately. First the square edge, using Mesh-->Edges-->Offset Edges-->Extrude
- Then offset the circle loop using the same command:
- Now we can fill our remaining face, either using Mesh-->Faces-->Fill or Mesh-->Edges-->Bridge Edge Loops:
- Et voila, the ugly triangle topology of the filled flat face does not impact the edges (in this case) because it is "buffered" by a margin of proper topology.
How this may work out in your case is hard to say for certain, but it's worth a try.