This could be done with a function node and setTimeout()
e.g.
[{"id":"8c670823.21ac9","type":"function","z":"c74669a0.6a34f8","name":"","func":"for(let i=0;i<7;i++){\n setTimeout(() => {node.send(msg)}, i*2*1000)\n}\nreturn null;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":280,"y":2160,"wires":[["a570b87f.d22fe8"]]},{"id":"2b89ad16.499f9a","type":"inject","z":"c74669a0.6a34f8","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":" 12345","payloadType":"str","x":90,"y":2160,"wires":[["8c670823.21ac9"]]},{"id":"a570b87f.d22fe8","type":"debug","z":"c74669a0.6a34f8","name":"out 3","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":730,"y":2080,"wires":[]}]
[edit]
for 25min repeat I would add a context to stop the function running endlessly
eg. (be carefull with this as you could end up with an endless loop)
[{"id":"2b89ad16.499f9a","type":"inject","z":"c74669a0.6a34f8","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":" 12345","payloadType":"str","x":90,"y":2160,"wires":[["8c670823.21ac9"]]},{"id":"8c670823.21ac9","type":"function","z":"c74669a0.6a34f8","name":"","func":"for(let i=0;i<7;i++){\n setTimeout(() => {node.send(msg)}, i*2*1000)\n}\nif(flow.get(\"run\")){\n setTimeout(() => {node.send([null,msg])}, 25*60*1000)\n}\nreturn null;","outputs":2,"noerr":0,"initialize":"","finalize":"","x":280,"y":2160,"wires":[["a570b87f.d22fe8"],["e0e0f85d.008228"]]},{"id":"a570b87f.d22fe8","type":"debug","z":"c74669a0.6a34f8","name":"out 3","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":550,"y":2160,"wires":[]},{"id":"e0e0f85d.008228","type":"switch","z":"c74669a0.6a34f8","name":"","property":"run","propertyType":"flow","rules":[{"t":"true"}],"checkall":"true","repair":false,"outputs":1,"x":280,"y":2200,"wires":[["8c670823.21ac9"]]},{"id":"10edad9.21280d2","type":"switch","z":"c74669a0.6a34f8","name":"","property":"parts.index","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"str"},{"t":"eq","v":"1","vt":"str"},{"t":"eq","v":"2","vt":"str"}],"checkall":"false","repair":false,"outputs":3,"x":560,"y":2020,"wires":[["5369c443.3d6454"],["2863627c.de639e"],["a570b87f.d22fe8"]]},{"id":"5369c443.3d6454","type":"debug","z":"c74669a0.6a34f8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":730,"y":2000,"wires":[]},{"id":"2863627c.de639e","type":"debug","z":"c74669a0.6a34f8","name":"out 2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":730,"y":2040,"wires":[]},{"id":"71bb8075.c7fc48","type":"split","z":"c74669a0.6a34f8","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":370,"y":2020,"wires":[["10edad9.21280d2"]]},{"id":"449af8d3.050b68","type":"inject","z":"c74669a0.6a34f8","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[false,false,false]","payloadType":"json","x":150,"y":2020,"wires":[["71bb8075.c7fc48"]]},{"id":"b14b8c12.eb568","type":"inject","z":"c74669a0.6a34f8","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":80,"y":2260,"wires":[["586e2d84.6993f4"]]},{"id":"586e2d84.6993f4","type":"change","z":"c74669a0.6a34f8","name":"","rules":[{"t":"set","p":"run","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":280,"y":2280,"wires":[[]]},{"id":"f6c3ffe.e6d3f","type":"inject","z":"c74669a0.6a34f8","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"false","payloadType":"bool","x":70,"y":2300,"wires":[["586e2d84.6993f4"]]}]
set flow.run true to continue loop and false to stop loop.