As an urban planner I have no clue what a R-Tree or a Quad-Tree search is. But I would try to solve this problem by using turf.js (though, I don't know if turf.js is that powerful, yet).
First you buffer your existing features with your radius, then you union those buffers. That is simple, there are examples somewhere doing exactly that.
The other part is to make an erase with the bounding box so you get all those areas that are not occupied by buffers. I think turf.js can't do that by default, but there is a module on npmjs: https://www.npmjs.com/package/turf-erase - If it doesn't work with the complex geometries maybe you can do it one at a time or so...
And then you just have to measure those new polygons if they match your criteria.
But I haven't done anything like this yet, just guessing.