Universal Analytics tracks sessions serverside based on the client id (which is stored in a cookie but without a timestamp) so there is not much you could use. "Classic" GA can retrieve custom vars from the visitor scope (using _getVisitorCustomVar) so you could store the start timestamp there (which is basically the same the cookie storage method mentioned in the linked article). But then classic analytics is not supported for new accountss, so it'S not exactly a future-proof method.
So I'd say yes, writing a custom cookie is all in all the best choice.