#JavaScript (ES6), 43 bytes

Returns the sequence as a comma-separated string.

<!-- language-all: lang-javascript -->

    f=(n=98)=>n?f(n-=n-27?n%10?1:2:11)+[,n+3]:1

[Try it online!][TIO-jmrskxwz]

[JavaScript (Node.js)]: https://nodejs.org
[TIO-jmrskxwz]: https://tio.run/##BcFBCoAgEADA1wSKGa0dKsF8SHQQ0yhkNzL6/jZzhS/U@Jz3q5H2xJydQDdP0i3os0DtUJvRYwO9B2ssgFRri2rYLHAkrFRSV@gQWUjJPw "JavaScript (Node.js) – Try It Online"

###Commented

    f =                 // f is a recursive function taking:
    (n = 98) =>         // n = counter, initialized to 98
      n ?               // if n is not equal to 0:
        f(              //   prepend the result of a recursive call:
          n -=          //     update n:
            n - 27 ?    //       if n is not equal to 27:
              n % 10 ?  //         if n is not a multiple of 10:
                1       //           subtract 1 from n
              :         //         else:
                2       //           subtract 2 from n
            :           //       else (n = 27):
              11        //         subtract 11 from n (--> 16)
        ) +             //   end of recursive call
        [, n + 3]       //   append a comma, followed by n + 3; notice that this is the value
                        //   of n *after* it was updated for the recursive call; at the first
                        //   iteration, we have: n = 98 -> updated to 97 -> n + 3 = 100
      :                 // else (n = 0):
        1               //   output the first term '1' and stop recursion