Draft: Further refactor ItemRepository mutex handling
Draft because based on !328 (merged) and contains many fixup * commits to be squashed into their respective !328 (merged)'s commits.
Draft because based on !328 (merged) and contains many fixup * commits to be squashed into their respective !328 (merged)'s commits.