I created a complex block model to showcase the severity of the issue some more:
Seems like BufferBuilder#sortVertexData() is only ever called to re-sort translucence vertices inside ChunkRender#postRenderBlocks(), which implies that manually sorting them ourselves in baked models may not be possible, but don't quote me on that.
For now, a viable workaround would be to separate the problematic model into distinct "solid" and "transparent" models, then re-combine them in a single baked model by rendering them on the correct layers. You can check the current layer being rendered by using the static MinecraftForgeClient#getRenderLayer() method. The block would need to return true for both the solid and translucent layers, of course.
This workaround isn't perfect, since quads that still need to render on the translucent layer won't be "fixed", but it will mitigate the problem for many cases. If it really comes down to it, using a tile entity may have to be a last resort if a better fix can't be found.
Edit: Forge's multi-layer-model system would be a perfect way of implementing this solution, and would remove the need to write a custom baked model yourself. However, as of writing this, that feature is currently inaccessible. For now, you will have to implement this yourself.