Just to share the new subflow:
[{"id":"5b2f1c1e34d60f19","type":"subflow","name":"3 Press button","info":"2024 01 07\n==\n\nHuge bug found and fixed.\n\nStill have a bug with code if the\n`topic` is not set.\n\nBut now better than what it was.","category":"","in":[{"x":70,"y":190,"wires":[{"id":"ec5080f153f43d22"}]}],"out":[{"x":840,"y":190,"wires":[{"id":"ee1c20a8875e36cc","port":0}]},{"x":840,"y":270,"wires":[{"id":"10d2bd1bfc555db3","port":0}]}],"env":[{"name":"startat","type":"num","value":"","ui":{"label":{"en-US":"start at"},"type":"input","opts":{"types":["num"]}}},{"name":"hold","type":"bool","value":"true","ui":{"type":"input","opts":{"types":["bool"]}}},{"name":"topic","type":"str","value":"","ui":{"type":"input","opts":{"types":["str"]}}},{"name":"Message 1","type":"str","value":""},{"name":"Message 2","type":"str","value":""},{"name":"Message 3","type":"str","value":""},{"name":"colour 1","type":"str","value":""},{"name":"colour 2","type":"str","value":""},{"name":"colour 3","type":"str","value":""},{"name":"fontclr 1","type":"str","value":""},{"name":"fontclr 2","type":"str","value":""},{"name":"fontclr 3","type":"str","value":""}],"meta":{},"color":"#DDAA99","inputLabels":["Input"],"outputLabels":["Output","Loop back to button node"],"icon":"node-red-dashboard/ui_button.png"},{"id":"9c628490f5a7ab36","type":"switch","z":"5b2f1c1e34d60f19","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"},{"t":"eq","v":"2","vt":"num"},{"t":"eq","v":"3","vt":"num"}],"checkall":"true","repair":false,"outputs":3,"x":230,"y":270,"wires":[["625edd1859414ac8"],["2ed89392aefd3ac3"],["75984bf53702c1ac"]]},{"id":"625edd1859414ac8","type":"change","z":"5b2f1c1e34d60f19","name":"1","rules":[{"t":"set","p":"text","pt":"msg","to":"Message 1","tot":"env"},{"t":"set","p":"bgc","pt":"msg","to":"colour 1","tot":"env"},{"t":"set","p":"fontclr","pt":"msg","to":"fontclr 1","tot":"env"}],"action":"","property":"","from":"","to":"","reg":false,"x":400,"y":230,"wires":[["10d2bd1bfc555db3"]]},{"id":"2ed89392aefd3ac3","type":"change","z":"5b2f1c1e34d60f19","name":"2","rules":[{"t":"set","p":"text","pt":"msg","to":"Message 2","tot":"env"},{"t":"set","p":"bgc","pt":"msg","to":"colour 2","tot":"env"},{"t":"set","p":"fontclr","pt":"msg","to":"fontclr 2","tot":"env"}],"action":"","property":"","from":"","to":"","reg":false,"x":400,"y":270,"wires":[["10d2bd1bfc555db3"]]},{"id":"75984bf53702c1ac","type":"change","z":"5b2f1c1e34d60f19","name":"3","rules":[{"t":"set","p":"text","pt":"msg","to":"Message 3","tot":"env"},{"t":"set","p":"bgc","pt":"msg","to":"colour 3","tot":"env"},{"t":"set","p":"fontclr","pt":"msg","to":"fontclr 3","tot":"env"}],"action":"","property":"","from":"","to":"","reg":false,"x":400,"y":310,"wires":[["10d2bd1bfc555db3"]]},{"id":"ec5080f153f43d22","type":"function","z":"5b2f1c1e34d60f19","name":"","func":"// Get \"start value\"\nif (msg.topic == \"startup\")\n{\n context.set(\"previous\",msg.payload-1);\n}\n\nif (msg.payload == \"reset\")\n{\n context.set(\"previous\",0);\n return;\n}\n\nvar max = 4;\nvar previous = context.get(\"previous\") || 0;\nprevious = (previous + 1) % max;\ncontext.set(\"previous\",previous);\n\nif (previous == 0)\n{\n previous = 1;\n context.set(\"previous\",1);\n}\nmsg.payload = previous;\nmsg.topic = context.get(\"topic\");\nreturn msg;","outputs":1,"noerr":0,"initialize":"// Code added here will be run once\n// whenever the node is started.\nlet value = env.get(\"topic\")\nif (value.length < 1)\n{\n value = \"DEFAULT\";\n}\ncontext.set(\"topic\", value);\n","finalize":"","libs":[],"x":390,"y":190,"wires":[["9c628490f5a7ab36","ee1c20a8875e36cc"]]},{"id":"ee1c20a8875e36cc","type":"trigger","z":"5b2f1c1e34d60f19","name":"Delay","op1":"","op2":"","op1type":"nul","op2type":"payl","duration":"350","extend":true,"overrideDelay":false,"units":"ms","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":570,"y":190,"wires":[["20347974efa46acb"]]},{"id":"20347974efa46acb","type":"change","z":"5b2f1c1e34d60f19","name":"$hold","rules":[{"t":"set","p":"hold","pt":"msg","to":"hold","tot":"env"}],"action":"","property":"","from":"","to":"","reg":false,"x":535,"y":150,"wires":[["52f023f6a52afa5b"]],"l":false},{"id":"52f023f6a52afa5b","type":"switch","z":"5b2f1c1e34d60f19","name":"if FALSE","property":"hold","propertyType":"msg","rules":[{"t":"false"}],"checkall":"true","repair":false,"outputs":1,"x":585,"y":150,"wires":[["7d8c55ef2950c72a"]],"l":false},{"id":"7d8c55ef2950c72a","type":"change","z":"5b2f1c1e34d60f19","name":"reset","rules":[{"t":"set","p":"payload","pt":"msg","to":"reset","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":635,"y":150,"wires":[["ec5080f153f43d22"]],"l":false},{"id":"10d2bd1bfc555db3","type":"junction","z":"5b2f1c1e34d60f19","x":550,"y":270,"wires":[[]]},{"id":"d87556ee78f63d9c","type":"subflow:5b2f1c1e34d60f19","z":"88de1ac2.8b8c38","name":"","env":[{"name":"startat","value":"0","type":"num"},{"name":"topic","value":"somethingelse","type":"str"},{"name":"Message 1","value":"ALL","type":"str"},{"name":"Message 2","value":"BLOCK","type":"str"},{"name":"Message 3","value":"ONE","type":"str"},{"name":"colour 1","value":"limegreen","type":"str"},{"name":"colour 2","value":"violet","type":"str"},{"name":"colour 3","value":"fuchsia","type":"str"},{"name":"fontclr 1","value":"black","type":"str"},{"name":"fontclr 2","value":"black","type":"str"},{"name":"fontclr 3","value":"black","type":"str"}],"x":1640,"y":280,"wires":[["e20a43ccb6ec319a"],[]]}]
This works - if you don't mind checking.