Here is what I use, and how it goes together. I use reasonably decent 1X4 spruce or pine that I select out on the wood pile in ten foot lengths. The store understands and is indulgent while I take the pile apart to find what I want. They know what I intend to use it for. The legs are 1X2 which are really smaller in cross-section, as most milled lumber really is. The legs are blocked into corners with bits of scrap 1X2 cut to size and screwed together. You can see one of those blocked leg tops at lower centre-left of the photo.
The operating surface is cheapo siding quality 1/2" pine, and so is the sub-roadbed, or cookie-cutter elements on risers. The plywood is rough, sure, but once you have it scenicked, who cares? You just want it to look good and to have integrity. I give it integrity by not having gaps between risers greater than about 12".
I used a single sheet of 1/4" MDF, a 4X8 sheet, ripped into 15/16" strips along the long axis. I got many 8' lengths of MDF splines that way and did my whole railroad sub-roadbed six-ply. It had to be pre-drilled in order to drive a screw. On its side, it was impossible to drive a track spike into it. I like using it for its literal flexibility, say as guides or fences along facia, or even as fascia. Otherwise, except for splines, it does not support itself well, it will sag, and it creates tons of fine sawdust.
Legs heavier than 1X2 are really unnecessarily expensive and heavy. They need bracing, but so will your 2X4.
I would not use OSB.