Так получается почти то, что нужно, только то, что после первого ob_get_content() уже не попадает в буфер.
Есть некая функция ob_get_level(), которая возвращает уровень вложенности, но как получить контент только с определенного уровня непонятно, видать функция чисто информативная.