I thought that the use of surrogate is only required when you want to control the botton's LED directly, i.e. $back_hall_light_kpl_h->set(ON) in Craig's specific case,
but when you use a PLM scene things just work without "surrogate".
Craig has been trying to set the button's LED state via a PLM scene. This is working for me but I don't see what's different in our configurations/user code that make it not work for him.