We tried a handful of things, and here’s what’s working best:
We raised the 3 year old’s bed. That’s … kinda it. It’s the same mattress, but instead of on the ground (he has an Ikea Kura bed, the reversible kind that we can turn into a bunk someday), we added slats and put the mattress on top of those. You know, the way it was designed.
We did this on Easter, after a sunrise church service and a skipped nap and LOTS of outside running around, so he was already out of his normal routine. We kept him running from 5am to 7:30pm without stopping, then showed him how big his “new bed” was, and he was too exhausted to wake up in the middle of the night.
We let him overhear us tell each other and anyone who would listen how proud we were of how he stayed in his bed until it was light outside, so he got proud of himself about it, too.
He’s been waiting until 6ish in the morning to come crawl into our bed and ask me when he can hunt tigers in the (midwestern) forest (preserve), and I can live with that.
A week in, it’s mostly stuck. If he has to go to the bathroom in the night, he needs a back rub to fall asleep again, but he doesn’t scream and wake up his sister now. Something about changing his sleeping environment a little jolted him out of that habit. If the bed hadn’t been adjustable, switching out his bedding or rearranging the furniture might have accomplished the same thing. I think a day of all our routines being different helped out with a hard reset, too.