I know there are plenty of checkpoint plugins out there, but to the best of my knowledge, none of them are capable of saving an unlimited* amount of checkpoints, store all checkpoints persistently or offer an API for bhop / surf timers, which is why I decided to create my own:
"Checkpoints is a SourceMod plugin that allows players to save their location, view angles and velocity as a checkpoint. In addition to providing several commands to access and manipulate these checkpoints, it offers automatic database storage and a SourceMod plugin API which can be used to integrate it with other plugins such as bunnyhop / surf timers, or to override its default behaviour."
Commands include (but are not limited to):
!save, !tele, !next, !prev and !cp
For more information such as a list of available commands and console variables, and installation instructions, visit the wiki (github).
*You're going to hit the cvar defined soft cap or run out of memory eventually.