In your example, the variance of $0.5$ implies a standard deviation of about $0.707$ which is $707$ times the mean of a non-negative random variable; that is a huge coefficient of variation and suggests you are going to need a large sample size to bring the standard error of the mean down to the same order of magnitude as the mean itself.
Things may be slightly worse than that: the skewness is about $2121$, again a very large number, resulting in most of the observations being very small but increasing the probability of seeing extremely large individual observations, so seeing relatively extreme sample means even with moderately large samples sizes.
As an illustration, the first chart below shows the probability of the sample mean being below $\frac12 \mu$ (blue), below $\mu$ (black), and below $\frac32 \mu$ (green) for different sample sizes on the $x$-axis. So it is only for large samples that you are likely to see a sample mean even half of the expectation of the distribution.

produced with the R code
library(statmod)
m <- 0.001
v <- 0.5
curve(pinvgauss(m*0.5, mean=m, shape=m^3/(v/x)),
from=1, to=10^9, log="x", col="blue")
curve(pinvgauss(m*1.0, mean=m, shape=m^3/(v/x)),
from=1, to=10^9, log="x", col="black", add=TRUE)
curve(pinvgauss(m*1.5, mean=m, shape=m^3/(v/x)),
from=1, to=10^9, log="x", col="green", add=TRUE)
while the density curves for the sample means look like the next chart, with $n=10^5$ (red, coefficient of variation $2.24$, skewness $6.71$) and $n=10^6$ (blue, coefficient of variation $0.707$, skewness $2.12$) and $n=10^7$ (green, coefficient of variation $0.224$, skewness $0.671$). As you have observed, it is only with very large sample sizes that something shaped like a normal distribution starts to appear.

produced with the R code
curve(dinvgauss(x, mean=m, shape=m^3/(v/10^5)),
from=0, to=m*3, col="red", n=50001)
curve(dinvgauss(x, mean=m, shape=m^3/(v/10^6)),
from=0, to=m*3, col="blue", n=50001, add=TRUE)
curve(dinvgauss(x, mean=m, shape=m^3/(v/10^7)),
from=0, to=m*3, col="green", n=50001, add=TRUE)
abline(v=m)