Currently, the only way to get this done is, as you’ve already mentioned, two loops with an offset of one, as it’s hard to make such a layout with Flexbox and one loop.
However, with CSS Grid (available in one of the following versions), this would probably work with only one loop and the nth-child selector.