I have the most experience with Slic3r, so I'll use it for comparison here:
Slic3r addresses this issue by noticing the fact that printing the first solid top layer over sparse is exactly like printing lots of smaller bridges. It uses bridging speeds and fan settings for the first solid top layer. It also adjusts the extrusion overlap/spacing so the strand it's printing doesn't drag and tear the one it just laid down (that's what causes the big gaps as in @tmorris9's photo).
I would REALLY like to see S3D offer a check box that requests that the first top solid layer be printed like a bridge. Or alternatively, that the first top layer be evaluated to see if it matches the bridging criterion (that is, if it is spanning an area that is larger than the "Unsupported area threshold" setting) and to use bridging parameters.
A second feature that would make an immense improvement to S3D's performance printing over sparse infill with more challenging materials like PETG would be to again take a hint from Slic3r (and maybe others) and automatically grow the first solid layer over sparse infill so the solid layer is supported at the ends by the infill. As it stands: imagine you have a part that looks like a staircase. The first solid layer of the first step will end where the part goes vertical toward the second step, but there is not necessarily an infill line directly supporting this area. Slic3r will extend the solid layers for the first step further under the second step until the edge of the layer is supported by a sparse infill line underneath. S3D currently (so far as I can tell) simply ends the layer in mid-air, and this does not go well. The only workaround I'm currently aware of is to use a large number of "top solid layers" and... hope it works each time.
I purchased S3D because I was having big problems with Slic3r's flow calculations. Correct extrusion amount is more critical with PETG, and despite lots of work, I still end up with lots of strings and blobs on the outsides of my prints, and lots of strings and rough infill when slicing with Slic3r. S3D makes beautiful first layers, beautiful walls, and extremely clean infill (if I use grid, triangle, or full hexagon) for me with PETG, but the top layers are absolutely embarrassing when printing with otherwise very reasonable speeds and settings. I can somewhat mitigate the problem shown in @tmorris9's picture by making solid infill go VERY slowly and using more solid layers, but this is a frustrating waste of performance and filament, especially on larger prints, because the only real problem is with the FIRST solid infill layer, and slowing down the top layers using "Solid layer underspeed" slows them ALL down.
Said another way: S3D is making cleaner, nicer solid PETG layers at 40mm/s when printing directly on the build plate or printing over 100% infill than Slic3r was doing at 20mm/s, presumably due to better flow calculations and other refinements. But when printing top layers over sparse infill, S3D is doing very badly, at least with PETG, and it seems to be because ignores the sparseness of the layer below and plows ahead as if it were fully supported. I think there are a couple things S3D could do to improve the situation, as laid out above, which would greatly improve print quality in these situations without wasting time or plastic. I know the printer is capable of doing it because those portions of the prints come out well when slicing with Slic3r.
A note on @jimc's advice:
Your advice is appreciated and will help to an extent, but:
#1 Sometimes you want to print PETG hot to get stronger prints, and other slicers are able to print at these higher temps (and speeds) without this problem. I'd like Slic3r's top solid layer performance combined with S3D's performance everywhere else.
#2 Larger layer heights will print larger lines in the solid infill, which can help, but again, we know the printer is capable of printing these finer layers if the slicer treats a solid layer printed over sparse infill as a bridge (which is what it really is).
#3 In my case, the infill S3D is printing is beautiful, just like the walls, so that's not the issue here.