Brainstorm with me or even better share what you have done in a similar situation. I am considering the thought of a toddler bed for him (ds1 is sleeping in one but it is a race car bed without much for barriers on side) or placing another mattress next to our current one. (We do have two mattresses in the house that are not currently slept in but I find both less comfortable than our current bed.)
As you said perhaps he's ready for his own space, near you...
Also bed rails could be an option. They are $20-$30 on Amazon for the basic framed mesh variety that tuck under the mattress and would keep him in bed. There are also foam wedges that you put under the sheet, but they're a little more pricey.
ETA: even an inexpensive body pillow tucked under the bottom sheet would probably be enough of speed bump to keep him in