Making it using the skysphere/skybox is by far the most efficient way to do it, however which method you want depends on the results you’re trying to achieve.
You could combine the skybox, a basic landscape and some low-detail 3D models or 2D sprites in order to create a more detailed background with a high level of depth.
Now, what you should build in the end should be based on the way you want it to act.
How is your background going to behave? Is the player going to be able to interact with it in any way? (e.g. throw a grenade or fire an arrow at it) Then you need it to be physically present and have collision and all that stuff.
Do you want to have some parallaxing elements to give the illusion of depth? Then you should add additional 2D and 3D elements.
Do you want to simply give the idea of vastness? A skybox/sphere will do the trick just fine, since the player will never be able to touch it.
Just think about what you want, what all the elements are, and only after that figure out how to make them.
I can’t answer your question, because there is no “best” way to make a background (or anything tbh), it all depends on exactly what you want to make.
Hope I helped in some way.