I might be mistaken (haven't tested your pr yet), but afaik node.set 'sets' the attribute on the chef-server. So on second run of chef-client the append line already has the "nosplash" from the first run. But its added another time. And each chef run another time.

I think this should be reverted, same for the next two lines. And the usage of the appendline?