Pain point has always been CPU usage on a single threaded level. Nowadays servers are optimized to the point where we squeeze all of the performance out of the CPU and run multiple instances of MC in order to accomplish that on a multi-threaded level. You can easily hold 500 players concurrent with zero lag on as little as 16GB of RAM and an E3v3 processor. You might say this is a lot of resources, but compare it with other FPS games and how many players they hold on single instances, and you'll realize Minecraft is in it's own league.
Also, due to how much CPU is a bottleneck for MC, Cloud providers are avoided at all costs. 2.2ghz (AWS) is not acceptable at all for the use case.
Minecraft servers are extremely optimized nowadays -- I have no clue where the rumor started that Java was the pain point.
I've been able to host Minecraft instances on my own hardware over a cable modem feed, and on a VM provisioned within a machine I fully control, but it's just not economical to do cloud-wise.
I do miss the days when the server component of a multi-player game was pretty lean and non-intrusive so you could run it as a background process on pretty much anything that had good bandwidth.
Until recently, I ran a Minecraft server on a $10/month DigitalOcean Linux VPS. (I consider $10/month dirt cheap.)
It ran very smooth. No lag or performance hiccups.
If the power bill is a concern, the computer wouldn't even have to be on 24/7; if it's just a server you and friends play on, it would be perfectly acceptable to just boot the computer whenever you want to play together.
It is not necessary to have mod compatibility in order to provide an extensible, powerful alternative.
$5/mo for 0.5G, $10/mo for 1G, $20/mo for 2G. All the standard droplets, except for the 3G for $15/mo one, make you pay $10 more per gigabyte.
Both Vultr and Linode seem to offer twice the amount of RAM per dollar though.
That isn't to say it isn't a nice deal though.
Because casually hosting a Minecraft server is ALMOST the same thing as hosting a SaaS which needs 5 nines of reliability.
One of the biggest pain points with running a Minecraft server is the onerous memory requirements. Java needs a ton of memory to get out of bed, and after that it's not always pretty with how the allocator works. That's fine on an enterprise server with 64GB of memory, but not cool when you're paying $10/mo. per GB of memory for what should be an inexpensive hobby.