No, a quaternion doesn't store the cumulative rotation. There is a subtlety here, in that a quaternion can tell the difference between $0^\circ$ and $360^\circ$ in principle, and that might give you some false hope! However, as Muphrid points out, a quaternion can't tell the difference between $0^\circ$ and $720^\circ$. Moreover, depending on your software library, you can't necessarily count on the ability to distinguish between $0^\circ$ and $360^\circ$ in practice either.
If you absolutely must avoid the jumps, you can try phase unwrapping. This is straightforward for 2D rotations: just get the current angle, and then add or subtract $360^\circ$ in order to minimize the distance to the previous angle. For 3D Euler angles, it gets trickier, since you have to deal with additional identities like $(180^\circ,180^\circ,180^\circ)=(0^\circ,0^\circ,0^\circ)$, and there may be problems near gimbal lock. I'm not sure how to implement this, but I hope that helps!
Okay, so you have an East-North-Down coordinate system as the fixed frame, and you have the phone's Up-Left-Out (of the screen) set of axes, and the quaternion is given in terms of the fixed coordinate system's basis vectors. I'll call the fixed axes $\hat x, \hat y, \hat z$ and the phone's axes $\hat x', \hat y', \hat z'$.
If you're using the phone as a camera, then I imagine it's the phone's Out-of-screen direction that is most like the direction the camera is facing (or rather, the negative of this). So the vector $-\hat z'$ should be the direction that the camera is facing. You should then project this vector onto the $xy$-plane by zeroing out its $\hat z$ component: $P_{xy}(\hat z') = \hat z' - \hat z (\hat z \cdot \hat z')$. You can then renormalize the result and find the angle in the $xy$-plane by basic trig. This should give you the compass direction that the camera is pointing (as an angle relative to east).
Angle off the horizon is easier. Take $-\hat z' \cdot \hat z = \cos \theta$. $\theta$ is then the angle off the vertical. $\theta - \pi/2$ should then give the angle you want: if $\theta = \pi/2$, then the camera is level. If it's larger, then the camera is tilted upwards. That checks out.
I admit, I'm not sure why you want to know if the device is horizontal to the ground; it's not clear to me how this relates to the direction of the camera, and so I'm not sure what answer to give for that part.
Best Answer
In simple terms, a quaternion does not need to be a unit quaternion in order to rotate another quaternion (e.g. by calculating the Hamilton product). But if it is not a unit quaternion, it will cause scaling in addition to rotation, so this will not be a pure rotation.
So, for example, if you want to apply several rotations $q_1,q_2,...$ to a quaternion $p$ (which might represent a point in 3D space), the quaternions $q_i$ representing the individual rotations do not need to be normalized in advance. You can simply multiply all of them, then normalize the result (thus eliminating the unwanted scaling) before using it to rotate the quaternion $p$.