There is a URL you can use to trigger non HTTP triggered functions.
https://[hostname]/admin/functions/[name_of_your_function]
You POST to this URL with the function apps _master key in the x-functions-key header. You can read it in detail here: https://learn.microsoft.com/en-us/azure/azure-functions/functions-manually-run-non-http
This can't be done with timers directly. Queues might be the right choice here: The previous run would have to create a message and send it to the queue. Make sure that the message becomes visible only after a specified time.
An alternative is to use Durable Functions, in particular an "eternal orchestration". Check out the example in the official docs here, where a job gets kicked off after a specified amount of time after the previous one has finished.