The Tablet code has a mixture of I/O code and in memory state (like active walogs, active in memory maps, current files, minor compactions in progress, refreshes in progress, etc). Its hard to analyze this synchronization code to ensure things like does any I/O happen while holding a lock (which is not desired).
Moving all of the tablets in memory state+sync into a single class that could be unit tested and analyzed may be one way to improve this.
Doing this work in the elasticity branch will be easier as a lot of functionality has been removed from the tablet server.