I'll scour the code in case I missed something, but by design the KinematicBody2D should not interact with the RigidBody2D.
I have Area2Ds on each object that handle interactions, that way they can specifically stay separate on the physics layers but still detect overlaps of each other. The Area2Ds are on the same layer and behave as expected. The PhysicsBody2Ds ought to be unrelated.
I'll see if I can reproduce this phenomenon with a more minimal example.
Edit I'm still digging in, but it's interesting that the RigidBody2D behaves as expected if I set cansleep to false. Or, bizarrely, if I setsleeping(true) just before the apply_impulse call.