Here's a quick JS hack that seems to do the trick:
$('head link[rel=stylesheet]').attr('href', '//cdn.sstatic.net/' +
(/\bmeta\./.test(location.hostname) ? 'betameta' : 'beta') + '/all.css');
or, if you don't like jQuery:
var beta = (/(^|\.)meta\./.test(location.hostname) ? 'betameta' : 'beta');
var link = document.querySelector('head link[rel=stylesheet]');
link.href = '//cdn.sstatic.net/' + beta + '/all.css';
It shouldn't be too hard to wrap that in a user script. In fact, I just made one. Use this link to install it.
Note that there's no guarantee that the specific style sheet URLs used by this script will continue to work, especially as they don't seem to be used by SE any more. (Even beta sites have their own style sheet each nowadays, even though they all look the same.) But for now, it seems to be working.
A minor but hard-to-fix bug is that, since user scripts normally run only after the DOM has fully loaded, the normal site style may appear briefly until the script runs and replaces it. I did manage to come up with a trick to make the code run a bit earlier, using
@run-at document-start and the MutationObserver API, but it's still not perfect (although the latest version does get pretty close).
Also, note that some SE sites do have custom HTML, which may not be fully supported by the generic beta CSS. The custom header at Photography, for example, looks pretty awful with the beta skin (although at least it's still more or less usable).