I need to be able to send an auto-generated email to the item owner when a milestone date is imminent
You have a couple of options - you can use Windows Task Scheduler for this, if you have access to the server. Or you could try using the built-in Sharepoint Information Management Policy function to trigger an email.
My answer in this post should get you started. I'm using SP 2013 On-Premises, if you're using a different version of Sharepoint that might chance how you approach this task.
Also Windows version seems to have an effect on how to use Windows Task Scheduler - Just do a search on Windows Task Scheduler and you'll find a guide for your version - e.g. this site.
A 3rd option could be to use a timer based azure function to check (searchl for items about to expire. The email could use either a SMTP service of your choice or the SendGrid service