for the question 1, you may use the REST API to configure your advanced schedule task :
{
"recurrence":
{
"schedule":
{
"hours": [8,9,10,11,12,13,14,15,16,17,18,19,20]
},
},
}
For the question 2, I would use a first scheduled job that occurs every 80 mn between 7 & 7 PM (same kind of solution as 1) and this job would activate (or create) a one time running job with a delay value between 40 & 80 randomly computed. The update (or creation) would use REST API (again) or PowerShell (because it would be a simpler schedule with Set-AzureSchedulerHttpJob Cmdlet documented here
https://github.com/Azure/azure-content/blob/master/articles/scheduler/scheduler-powershell-reference.md)
You may also use a triggered Webjob instead of a schedule job with a NCRONTAB expression such as 0 */59 8-20 * * * . In order to do this, you'll need to change the properties of the settings.job (but you still have to get 2 jobs in order to handle your randomize schedule...)
This kind of advanced scheduling Azure WebJobs with cron expressions is documented here
http://blog.amitapple.com/post/2015/06/scheduling-azure-webjobs/#.VoUtRGxIhZE
Hope this helps
Best regards
Happy new year !
Stéphane