With reference to setting custom user status on slack the documentation covers how to pass the timestamp when it would expire, but I could not find any mention of how to set the starting timestamp.
My question is if there is a slack api that would allow setting the user status, especially when the start time for the status is in the future?
There are no arguments or API methods for schedule a future custom status unfortunately. To accomplish this, you would have to schedule it server-side using a cron job or similar.
Slack is working on a new platform, currently in beta, that in its final form should allow you to create "scheduled triggers" that could then call a function that updates a user's status as part of a workflow. User token/authorization support is not yet supported in the beta but should be there soon.