I would actually
strongly suggest against this idea and instead rely on an external hosting provider, simply because there are plenty of caveats which can be difficult to overcome. The most obvious problem: what if you get the wrong kind of player(s) onboard, you ban them and they retaliate with a DDoS attack? Now you'll be
fully cut off from the Internet, won't even be able to read your e-mail or check up with online banking. That's a risk which I think isn't worth taking.
Then there's also something as backups, the one thing most people completely overlook or ignore. How are you going to cope for redundancy? Are you familiar with RAID by any chance? It's the process where you use one (or more) harddisks together at the same time so that when one fails others will take over. It's essential for a server, even home based NAS devices currently use it (Network Accessible Storage).
Considering the amounts of hosting providers out there I think you'll be better off switching to another. Because another aspect is your Internet connection; usually you get more download speed and less upload speed whereas an ISP will provide much higher and broader speed ranges. It's not merely about having a good upload speed; the balance is important too. If your server receives more information than it can sent out ("process") then that by itself could also cause problems, even lag. I don't see this happening with a smaller amount of players but it is something to keep in mind.
But even so... what kind of lag are we talking about here? There are different kinds of lag and it seems to me as if you're mixing stuff up. "
TPS problems and lag", what does this mean? Can you be more descriptive? So you got 9 Gb of RAM, how sure are you that Java is also actually using any of this? Did you change the way you start your server to specify that it should use more?
You don't fight lag by merely changing a few gaming options (rendering distance) and optionally throwing some anti-lag plugins at it. Don't get me wrong: they will do their thing and help out a bit, but what if your problem isn't caused by the game itself? What is the speed of your harddisks, what is the speed of your memory?
The first thing you do is configure and optimize your Java Virtual Machine ("JVM") and you do that by editing the command line parameter to start the server. Make sure that Java knows and actually uses all that memory, optimize the so called garbage collection (for example by telling Java that it should do parallel garbage collecting), increase the heap.. I can't help but think that this can be a major factor for your current problems.
Here is a good guide on optimizing a Spigot server for better performance, and I'd like to explicitly point your attention to a
JVM optimizing guide written by Aikar; considering your problems I'd say it's a must-read.
Only if that fails then you might want to start looking around for different hosting. See: not having a dedicated CPU core doesn't mean anything. I'm running a small server myself in a FreeBSD jail (virtualization merely for security purposes; making sure to separate the Java process from my main host) and even without a dedicated core or CPU for that matter I don't experience too much lag.