Plugin vs Datapack vs Command Blocks

I'm trying to design multiple different custom games and I was wondering if it's better for server performance to create this using a Plugin, Datapack or just in-game command blocks.

One of the ideas is an ice boat race. What I need it to do is as follows:

  1. Teleport a player to one of 3-5 available Courses. So it needs to keep track of which Course is in use by other players, since I want only 1 player per Course.
  2. Once inside players are only allowed to be outside the boat inside the starting area. They enter a boat and once they are on the Course if they leave the boat they are teleported back to the lobby and the Course resets.
  3. The time of the race is stored per player and the top 5 for each day/week/month are display either on signs or holograms. These leaderboards reset daily/weekly/monthly.
Continue to help post