Ideally we should just create TileCablingService fully initialized and not expose a non-const accessor. However, there's many pieces of code scattered around that want to twiddle pieces of it; getting rid of those would entail a significant redesign. For now, separate const and non-const access, and tag the non-const access as not thread-safe.
Temporarily, getInstance is still returning a non-const pointer. This is to change once all downstream clients have been migrated.