that 54TB figure is only if you pre-render into raster every zoom level of every tile for the whole world. a more typical self hosted openstreetmap renders the tiles on demand as you scroll or move the map.
Disk space usage is MUCH less, such that my test/development setup fits well on a virtual machine with 300GB of disk space on a 12TB hard drive that cost $145. By this measurement I believe it's using just under 4 dollars of disk space, 8 dollars if you count its duplicate where it gets backed up to.
Running your own tile server isn't too bad. The tiles are cached so that not much processing power is needed after a while of usage. Yes it requires storage but so would any self-hosting solution.
The site linked already provides docker images, I'm tempted to build a pi one.
hosing the entire planet is not sensible, but you can safely host a region/city/small country.
that said im not in love with maptiler and trying out a bunch of other tile servers with limited sucess.
The features that are there are included from a particular zolm level. If you want to make a global railway map - so you will show major railways at zoom 2, say - you would need to hack around, since the first zoom the railways appear on is 4 (or whatever).
What you can easily customise is showing those railways at zoom 4+ (or not) and the style of the lines.
If you want some of the features you mention rendered in your application you probably have to "Generate your own vector tiles from selected OpenStreetMap tags" as they also mention on their website.
[1] I'm not even a customer of them, just browsing their website.