> There is a distinction between things that only move at the speed of light

The real mindbender is when you stop thinking about "things" and only consider the field values at each point in spacetime, where there is a strong relationship between the field values at here-and-now p1 and then-and-elsewhere p2. The "distinction" between field-values-at-p1 and field-values-at-p2 is largely a matter of identifying whether the spacetime interval between p1 and p2 is "lightlike", "null", or "timelike", which can be done in a Lorentzian spacetime like ours.

In a toy case where there is one massless particle in a spacetime, if its identifying non-vacuum field value is at p1, we can show that if p1 and p2 are not lightlike-separated, then the field value at p2 must be the vacuum value. Alternatively, if the particle is non-massles then if p1 and p3 are lightlike separated, then the value at p3 must be the vacuum value. In this way we can constrain where in the spacetime the particle may be found, and this is the core of the Initial Value Formulation of General Relativity[1]). That is the door to modern general relativity, and it's a pity it wasn't invented while Einstein was still alive.

In this view, if "things" move, it is only because we treat a pattern of field values as a "thing" and we decompose the spacetime into a space+time by deliberately making a (very weakly constrained) choice of time-separated spacelike volumes. But the fundamental picture is that the only objects are interacting fields which permeate the whole of spacetime taking on some value at each point, these fields including matter fields (and the energy-momentum tensor) as well as the metric (another tensor field).

> photons attracted by gravity ... energy has a gravitational field ... photons moving only at the speed of light

Here you have, without realizing it, split the various interacting matter fields up so that you can assign a worldline to one particular field value, then split up spacetime and applied coordinates so that you can cut up the worldline into "photon at t1", "photon at t2", "photon at t3". Then you have made a choice of gauge so that you can talk about a "gravitational field" which the photon appears (to an observer making those choices) to feel (and change! although you didn't point that out). These are perfectly reasonable things to do, but it is perhaps worth doing so deliberately and with the understanding that for each such choice there are other options.

> the words energy and mass [as commonly used] do not properly fit "things that only move at the speed of light and things that never do"

Well, if there is an identical field value in a massless field at lightlike-separated p1 and p2 then there will be an identical contribution into the values of energy-momentum tensor at p1 and p2. If we consider the components of the energy-momentum tensor, we can (in a suitable set of local coordinates) treat the 00 component of the tensor as "rest mass" with other components as other forms of energy (e.g. the 11, 22 and 33 components together can be treated as kinetic energy) or momentum (e.g. the non-diagonal components are momentum fluxes). The whole tensor is the source of spacetime curvature, not just the time-time component, which is the closest to what one would in common usage think of as mass.

Again, the crucial thing is that behind the common usage there are a substantial number of important choices that are not made by "nature", but rather by a person describing the relationship of some set of field values at some points in spacetime.

- --

[1] https://en.wikipedia.org/wiki/Initial_value_formulation_(gen...