I work in nonprofit ops, which sounds like it should be low-stress and it is absolutely not. My evenings regularly go until 7:30pm and a couple months of the year are just disaster mode. I'm also building a small SaaS product on the side.
I've tried every time-management system sold to working adults and here's what actually holds up when your day job is volatile:
Don't protect a block of time. Protect a minimum. I used to say 'I'll work on the project 7-9pm every day.' When the day job bled over (often), I'd miss the window, feel guilty, miss it again, and lose a week. Now I have a 30-minute daily minimum. On most nights I do 60-90 minutes. On bad nights I do the 30. The project keeps moving because I never fall into the 'I'll restart on Monday' trap.
Identify the task you can do when you're fried. There are tasks that require creative energy and tasks that don't. I can write documentation, update my CRM, respond to user emails, run automated tests, fix minor CSS bugs -- all while mentally exhausted. I keep a list of these. When I'm too tired for 'real' work I do this list. The project still moves.
Timeboxed sprints on weekends are better than daily weekend work. Sunday morning from 9am-12pm with coffee. That's it. Three focused hours with zero slack notifications. More output in that time than 5 scattered hours the rest of the week.
What doesn't work for me: Early mornings. I know this works for a lot of people. I am not a morning person and pretending otherwise wastes time. 'Hustle through it' weeks where I try to do 20 hours. I burn out, the day job suffers, then I feel bad about both. Vague goals like 'work on the backend this weekend.' Specific tasks only. 'Finish the webhook handler and write tests for it.'
Seven months in, my project has 43 active users and $620 MRR. Not impressive numbers, but steady. The pace is slow. I'm fine with that.