Crumpets are tricky. I did not manage to cook one thoroughly or successfully until my third or fourth attempt, and even then they all had very brown bottoms! Even shop-bought sometimes seem to suffer the same fate.
The first issue could be the recipe. You'll find a mix of unbleached plain and bread flour better. My grandmother always made crumpets with water, not milk. Luke warm is finger-warm, so not sure about the temperature of the liquid vs. time it needs to rise, but sounds like the batter was successful. It is good to know what you are doing and want to achieve when making crumpet batter-cum-dough. The protein needs to develop to give the strength for the characteristic crumpet texture, and the gluten to give structure and help them rise. Did your method achieve both?
they didn't rise, but I'm not sure if they should've done anyway
No, they do not rise during the cooking. You pour a good half inch of batter into the ring. If it leaks out the batter is too thin (add more flour and whisk) and if holes do not appear, whisk in some extra liquid. The bubbles form giving the crumpet texture when cooking the first side. You can speed up the process by popping bubbles as they form with a skewer. When the holes stop filling with batter, the crumpets are cooked and you can carefully turn them over.
I find a very heavy bottomed cast iron pan or iron griddle is essential for successful crumpet making. Direct heat is not helpful, whereas steady, radiant, all-over heat is good. "Moderate" is about right.... moderately hot, not smoking hot. (For what it is worth as a comparison, set around 2/3 on the dial on my stove). Once the texture i.e. the holes are formed and the batter set, you can turn them over, which helps to cook them as well as free up the rings for the next two. I only have two rings, so by the time the first two have cooked, the proper heat quality seems to have been reached. Very much like making pancakes, the first one never is very good (I find).
The problem is that even after 15 minutes in the pan, the middle was still gooey - completely uncooked
That would indicate the heat was not high enough. My crumpets take no more than +/- 8 minutes each to cook. +/- 7 minutes maximum first side and then 1-2 minutes just to colour-up the holey top.
Could this be a sign that I did not prove for long enough...
No. The batter falls back when the yeast has done its stuff and is exhausted. Which is what you want, because now the gluten has developed sufficiently to give structure. It will also enable them to rise and hold their shape, while the protein gives the strength. I'd guess the bubbles in your crumpet recipe come from the bicarbonate of soda as much as those made by the yeast.
So all-in-all your batter sounds OK, but the recipe may need tweaking a little and you need to scrutinise the heat and the pan you use. Maybe also how thick they are? Was there too much in each ring? Don't give up! They really are far superior to bought crumpets and will even freeze. When you toast them to serve, this helps dry off any surplus moisture.
For a mighty article on How to Cook Perfect... Crumpets and comparison of recipes and techniques, from Elisabeth David to Gary Rhodes look no further than this Guardian article posted by Felicity Cloake, 21 March 2013. Do notice the appearance of the various examples. I think you will find them most informative and illuminating, not least compared to shop-bought crumpets. There are also several "How to cook a crumpet" videos online. Some are good, such as this one from The Bread Kitchen but others are dire!
Hope this helps. I'm off to find ethically caught tuna fish cans which have a "traditional" top and bottom as well as no ribs around the sides. Feel it's going to be a challenge, but would be great to add to my lonely two crumpet rings. Frugal old Piglet. ;)