You cannot prove $N=\{0,0^+, 0^{++}, \ldots\}$ is a set because the right hand side is not even a definition, merely suggestive notation. Your attempt of defining a natural number as something that takes the form of a finite number of successors applied to $0$ fails for the reasons you are beginning to suspect: you haven't defined what it means to be a finite number yet, let alone what it means to have said form, and such a thing seems rather hopeless without first having a definition of what it means to be a natural number.
What we might be tempted to do is "write down" an infinite disjunction: $$ \mathbb N = \{x: x =0\lor x=0^+\lor x=0^{++}\lor\ldots\}.$$ This would be a more logic-oriented approach to the intuitive "definition". However, infinite formulas are not allowed in the first order logic that underlies set theory. There are good reasons why we stick to first order logic, but I won't argue it here... I'll just note that making this definition requires we reason about completed infinities, which might be uncomfortably circular to a person approaching with a foundationalist mindset.
So we need to be somewhat less direct in our definition, and Enderton gives the most common approach. We define the notion of an inductive set as one that contains $0$ and is closed under the successor function, and then, crucially, we assume that an inductive set exists (this is the axiom of infinity, which, as its name suggests, is required for there to be any infinite sets at all). Then we define a natural number as a set belonging to every inductive set, and hence the set of natural numbers is the intersection of all the inductive sets.
(If there are no inductive sets, this definition does not work as intended since every set is vacuously a member of every inductive set. The set of natural numbers cannot be defined. However, the property of being a natural number can still be defined, but one needs to use a different definition that can be most succinctly phrased in terms of ordinals: a natural number is an ordinal that is not greater than or equal to any limit ordinal. CopyPasteIt's link has something similar that will work as well.)
The fact that we take the smallest possible inductive set is what corresponds to the idea that the set only contains zero and its successors, i.e. the only things that we need to be there in order to have an inductive set. However, we cannot hope to prove something of the form $\forall x\in\mathbb N(x=0\lor x=1\lor\ldots)$... as I remarked above, we cannot even express this notion in our language... if we could have we would have probably defined it this way.
So there's a reason Enderton defines the set of natural numbers as the intersection of all inductive sets rather than as $"\{0,1,2,\ldots\}"$ or as the set of all sets that can be obtained from $0$ by a finite number of applications of the successor function: this definition works in the desired framework and the latter two don't.
An earlier version of this answer made some remarks about non-standard models that may have misled you into thinking that somehow these naturals we define in set theory are not the "real" natural numbers. Make no mistake: what Enderton is doing here is giving a rigorous definition of the natural numbers within the framework of set theory. (And we can also define all the usual structure, arithmetic, etc.) The intention is to make precise the intuitive notion and also to unify with any number of other mathematical concepts that can also be encoded in ZF. So this set is intended to be the natural numbers for all intents and purposes.
(This is not the only way of looking at this: nobody says we have to use set theoretical foundations. Moreover, the concept of the natural numbers also has its own effective axiom system (PA or second order variants thereof) that we can use to study arithmetic and analysis in isolation. What is the 'real' natural numbers isn't really a sharp or in my opinion meaningful question.)
You're considering a non-standard model $(M, \in_M)$ of ZF which contains an ordinal $c \in_M \omega_M$ that is larger than all standard natural numbers $0_M, 1_M, \dots$
Remember: here $0_M$ denotes the unique set $k \in M$ satisfying $\forall x \in M. x \not\in_M k$. Similarly, $1_M = 0_M \cup \{0_M\}$ denotes the unique set $k \in M$ so that $\forall x \in M. x \in_M k \leftrightarrow x = 0_M$. Finally, $\omega_M$ denotes the unique set $k \in M$ satisfying the definition of "$k$ is the intersection of all inductive sets" when all the variables in that definition range over elements of $M$, and $\in$ denotes $\in_M$.
All in all, the set $\omega_M$ that $M$ believes to be the set of natural numbers has more elements than the standard set of naturals $\mathbb{N}$.
Of course, there is no first-order formula in the language of ZF that could be used to define the "set of standard naturals". If you know the compactness theorem, you know why. And as you note in your argument, your model $M$ definitely does not contain a set whose $\in_M$-elements are precisely the standard natural numbers.
But the principle of proof by induction still has to work here?
Yes, induction is a theorem of ZF so it works in any model of ZF. Inside $M$, the principle of induction asserts the following: if $P \in M$, and
- $P \subseteq_M \omega_M$, and
- $0_M \in_M P$, and
- $\forall n \in M. n \in_M P \rightarrow (n \cup \{n\}) \in_M P$
all hold, then $P = \omega_M$.
If there was a set of standard naturals $S \in M$, this would allow you to conclude that $\omega_M$ was equal to that set of standard naturals $S$. But since there is no set of standard of standard naturals in $M$, the principle of induction does not allow you to conclude anything surprising.
Instead of using a set $P$, you could state the principle of induction using a ZF-formula $\varphi(x)$, but this doesn't allow you to conclude anything surprising either: as noted above, there is no formula in the language of ZF that can be used to define the set of standard naturals.
Best Answer
The finite ordinals aren't defined as in your first bullet because that's not a definition, and even if you try to make it into one, it is circular. There are lots of different ways one can define it... one nice way that doesn't use the axiom of infinity is that a finite ordinal is an ordinal (i.e. a transitive set that is well-ordered by the $\in$ relation) whose reverse ordering is a also well-order. But more often, we take the axiom of infinity for granted and just define a finite ordinal as a member of $\omega$, where $\omega$ is defined as the minimal inductive set, or perhaps as the least limit ordinal. Since here we're concerned mostly with what the set of natural numbers is, as opposed to what a natural number is, let's just take a typical route and define $\omega$ as the minimal inductive set and define a natural number to be any element of $\omega.$
This is a definition in ZF, so any model $(M,E)$ of ZF, there is a set $\omega^M\in M$ such that $(M,E)\models \mbox{"$\omega^M$ is the minimal inductive set."}$ Moreover, $(M,E)\models \mbox{"$E$ is a well-ordering on $\omega^M$"},$ since it's provable in ZF that $\in$ is a well-ordering on $\omega.$ $(M,E)$ is an omega-model if and only if any of the following equivalent statements hold
What happens in a non-omega model is that the model's standard natural numbers are followed by a bunch of other things the model thinks are natural numbers, and they are ordered like a bunch of copies of $\mathbb Z.$ As you indicate in your last bullet, the model still satisfies that $\omega^M$ is the minimal inductive set... it's just simply the case that all of the model's inductive sets contain more than just the model's standard naturals (if you "read the fine print", there's no guarantee otherwise).
On a side note, I say "the model's standard naturals", but one should realize that unlike everything else I attribute to the model, this is not something we can define within the model... it is an external definition. And this has to be the case, since otherwise, we could just use this as the definition of the natural numbers and every model would be an $\omega$-model.