You might try having your current background task you would like to be run called by a separate scheduled task.
In other words you have one background task that does work, then a different one that is triggered by the scheduler that will do nothing other than create a new background task object and then return.
If you did not want the same task run at the same time as another ( idempotence in scheduled calls ) , then you can use anvil.server.list_background_tasks() and iterate over its result finding the uncompleted tasks and seeing if the current request need to be skipped.