Visually, the loop closure is good, but it is not the same location. This is a common problem with simulated environments with repetitive textures. Try decreasing RGBD/OptimizeMaxError parameter (default 1 meter) to something like 0.1 meter or less. This will make rtabmap rejecting loop closures that screw up too much the map.
<param name="RGBD/OptimizeMaxError"                type="double"      value="0.1"  />