Kitty, please take my comments in the spirit in which they were intended, ie to provide feedback on different way of doing things. Your sketch does what you want, which is the important thing, and being so small you can get away with what would be regarded as unsatisfactory in a larger sketch
The subject of Strings and strings is much debated here
A String (capital S) is an object created by the String library, which is in itself not a problem. What can become a problem is if you do something like this
String a = "Hello";
then later in the sketch you do
a = "World !";
At first sight there is no problem and, indeed it will work, but what happens behind the scenes is insidious use of memory. String a is initially allocated just enough memory to hold it, so when you change it to something longer it won't fit in the original space so a new memory location is allocated to hold it leaving the original space unused. On a microcontroller with no Operating System to tidy things up, known as garbage collection, the original space may never be used again. Done often enough this can result in running out of memory
As C style string (lowercase s) is an array of characters terminated by a zero. When using them the programmer is in charge of memory allocation, which can be complicated. If you did
char example[] = "Hello";
then exactly 6 bytes of memory would be allocated to hold the string (5 characters plus the terminating zero). C/C++ will not allow you later to do
example = "World !";
which is just as well because there would be no space for the ! and the zero and if you could do it then you would write over the memory allocated to something else
There are, of course, ways to change a C style string but at the heart of them the programmer must allocate enough space for the array to hold the longest string that will ever be used. By doing this you can probably see that changing a string will not leave holes in the memory
Of course, you sketch needs none of this complication but it is something to be aware of if/when your sketches get larger and use more memory
As I said, this is a subject much debated on the forum and elsewhere
Your point about declaring and defining variables at the top of the sketch to allow them to be found and changed easily is a valid one but it impinges on on another memory related subject called variable scope. A variable declared at the start of a sketch has global scope, ie its value is available throughout the sketch, which sounds like a good thing and is generally not a problem with any sketches that you may write.
However, as sketches get bigger and may use components written by others, such as libraries, you may not know the names of the variables used throughout which brings the danger of using or changing a variable holding a value that must not be changed or may have been changed elsewhere in the sketch. To counter this variables can be declared within a block of code which gives it local scope and the memory that it uses (if any) is released when the function ends. Do a search for "variable scope" for more details
Your use of delay() and the reasons for it are interesting. I can understand that you want to slow down the frequency of the Serial.print() but as that already stops the program for 100 milliseconds then delaying a further 16 milliseconds is not going to make much difference to the "servo". The reason why people use a delay() between the movements of proper servos is to slow down their movement by moving in small steps with a time delay between them. Your "servo" is not doing that so the servo delay() is not needed
It almost goes without saying that the use of delay() at all in a sketch is also the subject of debate here but I will not bore you with the details
Good luck with your future projects