Yeah, there are a few situations where key paths lose their sendability unfortunately (like appending). The only work around we have found is to just bit cast the key path to an & Sendable one when we "know" it's sendable:
Of course, if your key path is not sendable (like if it is a subscript key path that captures non-sendable data), then this will crash. So the responsibility is on you to make sure you are casting only when the key path is definitely sendable, which in your case I think it is ok since makeKeyPath returns a sendable key path.