I think asking about the decimals is a wasted effort at this point. It’s a simple thing to try isn’t it? Even if the decimals themselves aren’t the direct cause of the error, the extra few bytes added to every line of gcode is going to slow down a very demanding serial process and may cause the error indirectly. I’ve looked at the Marlin firmware and the decimals are ignored by the gcode interpreter/parser anyway because the laser power commands are just 8-bit analogWrite commands that can’t use decimal values. This feature was experimental and found to be useless so it’s been removed.
If you’re running Marlin then you can try slowing feed rate and/or acceleration so that the planner and serial buffer can keep in rhythm with each other or just print from SD as others have done successfully. I think there’s a setting in Marlin firmware for the serial buffer too but I wouldn’t play with that just yet. If I get a chance later I’ll try running your file from SD and see how it does.