I think your “overlapping sphere, turns on traces” idea is great. 10 traces is OK.
Note that a line trace is synchronous; your main game thread stops, runs the trace, then returns the data. Because the physics collision data is on the CPU, this genreally is not a large amount of time, but it does eat into your main thread CPU budget if you go overboard. (10 traces is not overboard.)
Meanwhile, the overlap sphere is asynchronous; the physics engine (which may be threaded) notifies the main code asynchronously that overlaps happen, and thus your code doesn’t need to block and wait for the result, it can use take it and run.