I believe it is because SweepMultiByChannel only returns True if it encountered a blocking hit, so you are testing out based on that condition. You can just remove that test and only worry about the OutHits, which will be empty if there are no overlaps.
If you use blocking hits, the first blocking hit encountered will end the sweep, so you want to use only overlaps if you want to ensure you get everything in the region you’re sweeping against.