A negative binomial distribution model is, in fact, useful when there is over-dispersion, but every model has a purpose and a set of assumptions. A Bernoulli trial has two outcomes and you need to observe both outcomes. If you consider an egg as a success, then how do you count the failure (non-egg)?
You can use a Poisson distribution model with an over-dispersion parameter, so you do not lose the flexibility of the negative binomial distribution model. You gain the benefit of a model with assumptions that match your situation.
The area of opportunity is a central concept of the counting process. For example, I might count the number of accidents weekly on a specific highway, in which case a week is the area of opportunity. I might count the number of Staphylococcus infections per 100 hospital beds in the surgical department, in which case 100 beds is the area of opportunity. These are examples where the area of opportunity remains constant while I model counts or test for changes. On the other hand, if I counted the number of accidents on many different highways (different length, different kinds of traffic and traffic loads) or I counted the number of Staphylococcus infections occurring in many different hospitals (different number of beds, different departments and specialities), then the area of opportunity for each count varies. I need to measure the area of opportunity and add it to the Poisson log linear model as the log offset. You say that you count eggs per reef. Is every reef included in the study afford the same area of opportunity? If not, how do you determine their different areas of opportunity?
I am still not clear about what you mean by a block. Is it simply a replicate of the entire design? If so, then an interaction effect really means that there is a lurking variable or hidden factor at work, not just a random effect (replicate variance). How do I get another block or make another block in your situation? I assume that by "spatial heterogeneity" you are referring to differences among reefs. But isn't that just your random error (sampling error)? If so, then you should not model it as a fixed effect (interaction).
After we sort out some of these details, we can discuss the plots.