I see nothing wrong in the active g-code. If you want to to attach the full g-code file in a post, I can look a bit more. You should be able to attach it directly to a post, though if you have an issue (like it complains of it being too big), you can put in a ZIP file and attach it.
FYI: There is an issue with the following inactive line in your g-code:
;G92 Z-0.5 F150 ;account for probe thickness
First, G92 sets the position. It is not a movement command, so you would want to set Z to a positive value representing the touch plate thickness. Second, since it is not a movement command, it does not have a F parameter. Assuming Marlin ignored the F parameter issue, the code as it is would result in your cutting being 1mm too high (.5 for the touch plate, and .5 for the G92).
Note the most likely cause I list in my previous post given your additional information is somewhere having a Z feedrate too high. The Z feedrate can be limited in the firmware using a M203 g-code. If you execute an M500 after the M203, the setting will be saved. In addition, in EstlCAM Setup/CNC Programs/Coordinates you set the max feedrate for rapid (G0) commands. If you haven’t already set this value, V1 recommends 480 for the Z feedrate limit.
Is the profile cut too deep, or is it just the tabs? What thickness of aluminum are you cutting?
Edit: Consider putting a G28 Z0 near the end of your g-code file to see if the bit is returning to the correct Z zero height.