You do need to restart Leo. If you did that (I imagine you did), I'm not sure. I don't think the @string qt-layout-name node needs to be an immediate child of @settings.
All the built-in layouts have names that begin with "layout-", like "layout-vertical-thirds". The prefix isn't required in the setting since the code supplies it if it's not present.
Your new command should be available through the minibuffer. Try it out there. It should work regardless of the name. When I tested the code I posted, I did start its name with "layout-". So add that as a prefix to your command's name try that and see if it will apply automatically after a reboot. If not, I could revisit the code to make sure that part is working as intended.
If your layout command is not present in the minibuffer, then make sure its @command node is a child of an "@commands" node. I don't remember if that's needed for Leo to add it to the collection of commands, but that's how I've been doing mine. IOW, you want a node structure like
@settings
@commands
[Optional organizer nodes]
@command windowlayout-mine
BTW, I recommend starting your layout's name with "layout-" even if it isn't necessary. It will make it easier to find via mini-buffer tab completion after you have forgotten its name.