Don't stay up until 2AM working on your contracting firm's projects. Don't personalize contract assignments. Don't act for your firm's clients like you're their full-time employee: you aren't. Don't assume clients are OK with you coming in super late because that's what programmers do: many aren't OK with that.
There are some really great things about working for contracting firms: you get a W2 and benefits and mostly all the downside risk protection of an employee while getting exposed to all the random projects a consultancy gets. You get to dip your toes into lots of different projects. And when you get sick of a certain kind of project, often, you can easily no-harm no-foul switch to other projects. Contracting firms can be great.
But if you try to treat a contracting firm the way you would a startup or tech product company, things are going to suck for you. In particular: you must force yourself to deliver a day's worth of work and then put things down. If you're compulsive and need to work late into the night, stop doing client work, and switch to personal projects.
Contracting firms usually can't bill for your 2AM binge coding session. Clients generally want to pay for work done during business hours on a well-defined schedule. It does not matter that you believe that's not how software is delivered; it's how software is bought. If you run yourself ragged refactoring things until late in the evening, your contracting firm isn't going to be impressed with you: they're going to see, from 1000 miles away, that you're burning yourself out pointlessly in a manner that isn't going to make them an extra penny, and they're going to get pissed.