I decided not to pursue the background idea as it would most likely lead to a less stable FreeCAD, but the good news is Werner came up with excellent code to add a progress indicator with a cancel button and we also found a way to make the check run faster for users with multi-core processors.
Question now is should we do away with the runbopcheck parameter and just run the full test for everybody? If that's not a good idea, how about changing the results dialog window title from "Check Geometry" to either "Check Geometry (quick check)" or "Check Geometry (full check)" depending on whether the bopcheck test was run or not? At least if it says quick check it will clue in more users that there must be an option for a full check if there's a quick check. Plus, it would be a reminder for those who deleted their config files and forgot to re-enable that option.