Dig into the log
Seems a split operation which we expect to success is started before we finishing a merge and cause an infinite sleep loop.
I guess the problem is here
I guess that during a merge, we can get more region count than before because we first online the new region and then offline the two old regions.
So change it to admin.getTableRegions(tableTwo).size() != initialRegions - 1 may work.
And we can modify the while loop to use Waiter.waitFor which can provide more useful information when test failed.