"The best" is certainly opinion based and bound to personal preference, there are definitely different approaches, workarounds and valid alternatives.
Working daily in archviz in Blender however I end up exclusively using Groups for organizational purposes instead. Haven't really touched Blender's Bit Layers for scene management in quite some time, except for when render layer compositing is required.
I permanently changed my outliner to Groups mode in my startup.blend
and use it as an always-open "layer manager" of sorts.

That way you can assign custom names to the "layers", have an unlimited number of them, and do the usual toggle visibility, selectability and renderability from the list.
Only difference between this and actual CAD-like layers is that since they are groups they don't store an actual state per-se, so adding an object to an invisible or unselectable group, for example, will not immediately make said object take on the group invisibility or unselectability state. You will have to manually toggle it again for this to update all new objects freshly added to said group.
For organizational purposes, if you also wish to use group instances along with groups as layers, then things might get messier with a long list of groups. Using some sort of naming scheme to keep groups organized, sortable and manageable is one possible workaround.
I generally prefix all my "layer groups" with the 'Layer' prefix in their name, and then prepend different prefixes for other group types meant as reusable instances, depending on their content.
Something like 'Component' for project specific reusable building parts; or 'Assets Furniture', and 'Assets Decoration' for generic movable objects; 'Assets Vegetation' or 'Assets Trees' for the greens, etc.
You can still have objects belong to several layers at the same time, and if you import DXFs with Blender's standard DXF importer, half the work would already be done automatically, since the importer already matches DXF layers to Blender groups by default anyway.