Can't you simply generalize the "I cut, you choose" algorithm? A cuts the first slice, then B divides the remainder in half, then C picks a slice, then A picks a slice.
If A cuts a slice bigger than 1/3, C will pick that. Likewise, B, as the last one to pick a slice, has an incentive to split evenly.
Good point, I didn't consider collusion. If A cuts a smaller slice on purpose, B can cut the remainder so that A and B still get the same amount, but C gets more. But if A can trust C to give a part of his share later, then B can't do anything.
If A cuts a slice bigger than 1/3, C will pick that. Likewise, B, as the last one to pick a slice, has an incentive to split evenly.