Ich hab mal eben in den Source-Code von Paper geschaut. Die Formatierung von TPS sieht so aus:
return ( ( tps > 21.0 ) ? "*" : "" ) + Math.min( Math.round( tps * 100.0 ) / 100.0, 20.0 );
Das bedeutet, dass wenn die TPS über 21 sind, die TPS mit *20 angezeigt werden, ansonsten werden 20 TPS angezeigt.
Über 20 TPS zu haben ist durchaus möglich. Wenn du keine Ahnung hast, wie intern ein Minecraft-Server funktioniert, solltest du vielleicht nicht solche Aussagen treffen.
Technisch holt Minecraft die Ticks intern auch auf. Der Server versucht langfristig, die TPS auf 20 zu halten. Wenn also für 3000 Ticks (bei 20TPS sind das 60 Sekunden) nur 19 TPS vorhanden sind, dann werden die nachfolgenden 3000 Ticks schneller durchgeführt, sodass interne Scheduler trotzdem im Mittel die richtige Zeit haben und nicht irgendwelche Ticks verloren gehen.
Wenn allerdings der Server so überladen ist, dass die Ticks nicht mehr aufgeholt werden können, dann werden Ticks verworfen und der Minecraft Server warnt dich darüber mit der Nachricht:
Can't keep up! Is the server overloaded? Running {}ms or {} ticks behind
Die entsprechenden Stellen im Source Code vom Minecraft Server sind unter src/main/java/net/minecraft/server/MinecraftServer.java zu finden.