<sub>Answer originally left in comments by the question author</sub>

Finally I discovered mdb addressed this bug in 10.2.13 but it remains in 10.2.14.

In summary have gotten around the problem by turning `INNODB_ADAPTIVE_HASH_INDEX = ON` and have not had a problem since Monday AM. See https://jira.mariadb.org/browse/MDEV-14441 for the supposed 10.2.13 fix.

Evidently MDB was bypassing releasing the latches associated with the semaphores when deadlocks occurred, when `INNODB_ADAPTIVE_HASH_INDEX  = OFF`

The mdb 10.2.13 fix explains mdb hanging during deadlocks in 10.2.13. The root cause of this bug is that in the function `btr_cur_update_in_place()` we are skipping this call if the adaptive hash index was disabled during the execution:

    if (block->index) {
        btr_search_x_unlock(index);

When debugging the code, I mistook the leaked X lock for a leaked S lock. I did not find any other rw-lock leaks during the MDEV-14952 review/refactoring effort.

The lock leak was introduced by me in MDEV-12121.