Currently the hook sleeps for whatever time it takes which is set for the propagation duration, I didn't check the code beforehand so I set it to the same value as my DNS Providers TTL - which is 1800s - but then I figured out it's just a hard coded sleep and not checking if the record exists before hand.
So, a improvement I can recommend is to check the record for the existence - then if non-existent, wait the mentioned propagation duration - or maybe even, sleep for max X seconds, then check again till a max of the propagation duration and if it doesn't exist after that, exit with an error - this should also prevent unnecessary calls to LetsEncrypt