The built-in Sitecore scheduler can certainly be frustrating in its limitations.
So using a WebApi endpoint that the task can call is certainly one way of doing things. You should keep security in mind though; if your URL can easily be guessed and doesn't require authentication then anonymous users can potentially trigger it. You should definitely consider some kind of access control (e.g. credentials, tokens, IP restriction).
You have a couple of options for triggering it. Off the top of my head, you could install a windows port of curl
and use that, you could write your own console application, or you can use PowerShell. My preference would be the latter. You can easily create a simple script as follows:
$url = "http://www.example.com"
$request = [System.Net.WebRequest]::Create($url)
$response = $request.GetResponse()
$response.Close()
Then you set up the scheduled task to execute your PowerShell script. That will fire off the request to your server.
The thing you need to be careful of with this is that web requests can time out; and this can cause your tasks to register as failed. You can execute the task on a separate thread, but this means you can no longer return failure codes to the scheduler.
In my opinion, a better option would be to use the Sitecore Powershell Extensions module, and then use the remoting feature to connect and invoke your job on the server. You can then wait on the job, which means that you shouldn't have to work around timeout problems.