Making a reservation using Selenium/PhantomJS
You can try approaching the problem without using an actual browser and sending HTTP requests using requests and parsing HTML using, say, BeautifulSoup. This though would involve diving into how the page is formed, is more error-prone and would be far more suspicious and easier to detect in general. Of course, with no browser overhead, this would be much faster. 

There are some other relevant tools like the Scrapy web-scraping framework. Which, if needed, can be combined with a JavaScript engine - see scrapy-splash.

There are though some things you can try to speed things up in your current approach:


remove time.sleep() hardcoded delays and switch to using Explicit Waits based on WebDriverWait and Expected Conditions
avoid using XPaths as it is generally the slowest element location technique (of course, that's not a bottleneck here)
you can pass certain flags to PhantomJS to help it load pages faster - like --load-images
you can try switching to headless Chrome instead of PhantomJS - I've seen benchmarks showing that the headless Chrome beats PhantomJS in terms of both speed and memory usage