Slightly different as I'm an accountant, but very similar setup. I made the numbers work by doing more myself, i.e. minimising the time spent by admins, juniors, other fee earners, etc. I found that doing more stuff myself actually cut the total time costs (due to not having the wasted time of explaining, supervising, reviewing, correcting etc and I suspect sometimes they put more time down that they hadn't worked to cover longer breaks, over-running other jobs etc) - I even did a fair bit of typing myself. I gave quite a bit of thought before delegating some work to someone else which included my evaluation of how much "handover", supervision and review/correction I'd have to do! I know the management/owners were a bit put out by it as they preferred more staff involved for training/continuity etc., but I couldn't get the numbers to work otherwise and as I had autonomy over my client portfolio and was hitting targets (both for billing, write offs and client satisfaction), they couldn't really complain, other than the occasional "nudge" to use other staff more!
I did a bit of unpaid overtime, but it wasn't routine, it was more when there was a deadline when I'd do a bit at home in an evening or weekend, or stay at work a bit longer to finish a job. But I didn't regard it as "unpaid" as it usually led to me exceeding expectations in terms of billing etc so my bonus effectively was my "wage" for the unpaid overtime.
I also learned to use my time very wisely, i.e. I'd do "thinking" time outside working/billing hours if possible, i.e. on my commute, waiting time before meetings/courses, etc. "Thinking" time is entirely allowable billing time, it's certainly not fudging the time sheets, as you've got something tangible from it, especially if you're doing something like tax planning or business planning where there'd still be "thinking" time if you were sat at your desk in the office! Things like that can sometimes be forgotten meaning client is undercharged just because you weren't sat at your desk whilst thinking!