I talked with the libplacebo devs about this, but apparently I misunderstood some things, I just spoke with them again and got a better picture of what’s happening:
vk_poll_commands() polls each command with vk_cmd_polls()
vk_cmd_polls() is a simple wrapper vkWaitForFences()
For my issue, interpolation requires heavy use of vk_poll_commands() which causes heavy use of vkWaitForFences(). That function is implemented as a busy wait loop which artificially spikes CPU. The libplacebo devs have previously tracked down this issue and identified this behavior with vkWaitForFences() as an issue. Basically, no other driver implements vkWaitForFences() as a busy wait. Simply increasing the timeout for vk_poll_commands() causes a drop in CPU usage.