The semantics of cache.clear() were changed in 7.2.0.Final [ISPN-5370] Make clear() non-transactional and lock free - JBoss Issue Tracker.
The same concepts were not transposed to the Tree cache. Probably an equivalent TreeCache.clear() method (which would essentially do what you describe above) would be useful.
Thanks for pointing out situation and the newer semantics in 7.2.
The implementation you outlined that follows the semantics of Cache.clear() would definitely be appropriate for our use case.
We only clear the CacheTree after ensuring that other nodes are blocked out.