The hurdle log-likelihood function does appear sound. As lvm has indicated, computing 1/alpha for alpha initialized to 0 is a problem.
Personally, I prefer not to use bounds statements to control acceptable values for the parameters. Derivatives are usually not defined when parameter estimates are fixed at boundary values. Sometimes, the function itself is not defined when a parameter takes on the boundary value. (Such is the case for the NB distribution when you specify alpha=0. Even though the NB is a Poisson when alpha=0, it is not possible to compute the Poisson density using a negative binomial density function.)
Instead of using boundary constraints, consider parameterizing the model so that the parameter estimates are always in an acceptable range. For instance, in the NB distribution, the parameter alpha must always be positive. If you name log_alpha as a parameter and then compute alpha=exp(log_alpha), then alpha>0 for -infinity