Here’s a link to a post about adjusting “next runtime” when Daylight Saving Time kicks in.
Ignore the DST aspect, and just consider it for automatically adjusting the NextRunTime(and date) of your “Last of Month” schedule.
Edit
The tl;dr version …
Make an In-Tran Data Directive on SysAgentSchedule
with conditions of NextRunOn
changing, AND the name or ID of the “LOM” schedule. When this fires, calculate a new NextRunOn for the last day of the next month.