If it is going to be pre-packaged anyway, use whatever modules you want (such as the excellant
Schedule::Cron) and just be sure to include them in the package you distribute. That isn't hard at all (as long as they are pure Perl). Just update the versions in your package when you release updates to your core engine, and allow for advanced users to specify that the system installed versions of the required modules be used instead. Simple.