Place a medium skillet over medium-high heat. Melt the butter in the skillet and then add the onions. Reduce heat to medium and cook, stirring occasionally until soft and lightly browned.
Meanwhile, in a larger skillet, melt the remaining butter over medium-high heat. Crack each egg into the skillet, keeping the eggs from touching and cook through, flipping once, until done to your preference. Salt to taste and remove from skillet. Keep warm.
To the empty skillet, add the spinach on one side, cooking in the remaining butter. One the other side of the skillet, heat the ham through until warm. Remove skillet from heat. Keep warm.
To assemble the waffle sandwich, spread the cream cheese across two waffles. On these waffles, stack the spinach, tomato, eggs, ham, cheese, and onions. Top with remaining waffles. Serve to two hungry people immediately.