According to the GL_KHR_vulkan_glsl spec, layout(push_constant) always implies std430 packing. However, it seems the nvidia implementation (VK_NV_glsl_shader) disagrees:
layout(push_constant, std430) results in
error C3009: layout qualifier 'std430', incompatible with 'uniform blocks', but it happily accepts
Trial and error has always confirmed that my rendering bugs go away the moment I pack the push constants with std140 instead of std430.