Amazing article, congratulations!
I would love to add a few things if you don't mind, since I've been a freelancer for a while now and I used all kind of methods to keep myself productive and ready to work any time.
I'll share a few tips that may help others, and who knows, I may even write an article about this topic:
Split your work into different tasks, and focus on achieving them every single day. I did that a few years ago and this allowed me to take multiple breaks throughout the day. The "snacks" problem can be easily fixed by getting something really light to eat in your small breaks. For example after each tasks I take around 5 minutes break to get a drink and eat something.
As you said, take free days in order to refresh yourself and break the routine. I usually take weekends. I work less on Fridays than other days, but I do not work at all Saturday and Sunday. This helps me keep fresh when I have too many things to do and also regain the energy to continue working for the following week.
When having a routine, one of the things you can do is try to identify the tasks that you need to do every single day, and find ways to do them faster without wasting too much energy on them.
Automate things. Learning how to use a computer at a basic level and automate things can save you a lot of time. Each day I need to promote design packages I made for Graphic River on several social media platforms, and instead of getting on each website myself every single day, I created a very simple CMD script that gets me on all the websites I need with one click. I save a lot of time this way.
Combine working smart with working hard, and you'll get more rewards than doing each of those things individually.
Anyway, thank you for the article, good job and best of luck!