Thanks for that, lots of food for thought.
I did try the GRBL-M3 profile and while it did work the G0 speed was slow, at a guess the rate looked more like 300 rather than the 3000 I had set. I did add G0 F3000, followed by an G1 F300. When I removed the F300, it set off at the normal speed, but after that all the movement between cuts, and the return home were at the slower speed. It is as if any parameter it got for a feed rate was applied persistently to both G0 and G1 calls in the absence of anything else.
I got a bit more information about my laser, in that it uses one of these boards in it.
https://3daddict.com/mks-gen-v1-4-mainboard-controller/
Now I don’t know what sort of software the makers put into it, but I am assuming it was not far from a Marlin standard software. So I looked at this profile again. This produces code that includes a F0 setting in every G0 command, and as such, will not work directly. However, when I used a text editor to do a global find and replace, to change every F0 into an F3000, then my laser behaved normally. I conclude that a Marlin does not use the convention that F0 defaults to the fastest the machine will go, but requires a feed rate to use. This extra step seems worth it to get the faster movement between cuts, and it is not too onerous. I might even come up with a script to do it but it hardly seems worth it.
So I will be using this setup and see how this goes.