Stroke Count of a Chinese Numeral Task
Given an integer \$n\in[0,10^{12})\$ in any convenient format, return the number of strokes needed to write that character in simplified Chinese.
Background
Chinese numerals are expressed in base 10 with a system of digits and places, with an important distinction that digits are in groups of four, rather than three.
The individual characters used to write Chinese can be described at the lowest level as a collection of strokes, laid out in a certain order and manner. The number of strokes required to write a character is that character's stroke count.
The (simplified) characters used to write numbers in Chinese are:
num   char　 strokes
0     零*    13
1     一     1
2     二**   2
3     三     3
4     四     5
5     五     4
6     六     4
7     七     2
8     八     2
9     九     2
10    十     2
100   百     6
1000  千     3
10^4  万     3
10^8  亿     3
 * 0 can also be written 〇, but we won't use that here.  
** 两 is largely interchangeable with 二, apart from never
   appearing before 十. We won't consider it here for simplicity,
   but 两 is very common in actual usage.

For example, 9 8765 4321 is 九亿八千七百六十五万四千三百二十一: nine hundred-million (九 亿), eight thousand seven hundred sixty-five ten-thousand (八千七百六十五 万), four thousand three hundred twenty-one (四千三百二十一). In all, 53 strokes are needed to write this out.
There are additionally some special rules involving the digits 0 and 1. These can vary slightly between dialects, but we'll choose these:

When there are non-trailing 0s in a 4-digit group, they are combined into a single 零. No place marker is used.
(This is because e.g. 一百二 is a common way to say 120. We won't consider that form.)

1020 is 一千零二十.
6 0708 is 六万零七百零八.
3 0000 4005 is 三亿四千零五.
0 is 零.


If the number would begin with 一十, the 一 is omitted.

Powers of 10 are 一, 十, 一百, 一千, 一万, 十万, 一百万, etc.
111 is 一百一十一.




Test Cases
           n  strokes  chinese
           0  13       零
          10  2        十
         236  17       二百三十六
        7041  26       七千零四十一
       50010  23       五万零一十
      100000  5        十万
      860483  42       八十六万零四百八十三
     4941507  52       四百九十四万一千五百零七
    51001924  38       五千一百万一千九百二十四
   105064519  70       一亿零五百零六万四千五百一十九
   300004005  31       三亿四千零五
   987654321  53       九亿八千七百六十五万四千三百二十一
  1240601851  56       十二亿四千零六十万一千八百五十一
608726402463  79       六千零八十七亿二千六百四十万二千四百六十三

@user202729 provided a script in the sandbox to help with reading the Chinese numbers: Try it online!
Python 2, 163 162 155 151 bytes
-1 thanks to Arnauld, -7 thanks to ovs
Hexdump:
00000000: efbb bf65 7865 6322 789c 1dcb c10e c220  ...exec&quot;x......
00000010: 0cc6 f157 e1c2 d2c2 88b4 6359 34c2 bb20  ...W......cY4..
00000020: b893 7689 274f 3ebb 65a7 36bf 7cff 3dbf  ..v.'O&gt;.e.6.|.=.
00000030: eafb d1ab 91b9 e578 1353 a543 fc32 734a  .......x.S.C.2sJ
00000040: ebc2 d44b 114b d1a5 8956 f430 7e5d 9866  ...K.K...V.0~].f
00000050: 93bb 5a62 bba1 5fdc e067 1ace 1b97 d226  ..Zb.._..g.....&amp;
00000060: c240 ca40 67ec 75ad 2de8 b92f 7852 440c  .@.@g.u.-../xRD.
00000070: 2039 0f62 f43b c885 e21c 7e5c 728f 8fd1   9.b.;....~\r...
00000080: 343a d7fe d154 254b 222e 6465 636f 6465  4:...T%K&quot;.decode
00000090: 2827 7a69 7027 29                        ('zip')

Unpacked:
f=lambda n,c=0:n and(0x222445321d&gt;&gt;n%10*4&amp;15)+(n%10and c%4*9%12%7)+3*(n%1e4and 272&gt;&gt;c&amp;1)-13*((1&gt;n%10+c%4)+((c%4&lt;3)&gt;n%100))-(n==c%4&lt;2)+f(n/10,-~c)or 13*0**c

Try it online!
Commented version
f=lambda n,c=0:n and        # If n is not zero, sum the following:
                            # The strokes of the current digit
  (0x222445321d&gt;&gt;n%10*4&amp;15) #   [13,1,2,3,5,4,4,2,2,2][n%10] 
                            # The 10/100/1000 marker stroke count, if 
                            # the currrent digit is zero
  + (n%10and c%4*9%12%7) #   [0, 2, 6, 3][n%10 and c%4]
                            # The 10^4 / 10^8 marker stroke count
  + 3*(n%1e4and 272&gt;&gt;c&amp;1)   #   3*(n%10000 and c in [4,8]) 
  - 13*(                    # Subtract 13 because we overcounted the zeros if
                            #   It's a trailing zero in a group of four
        (1&gt;n%10+c%4)        #     (n%10 == 0 and c%4 == 0)
                            #   and/or if it's part of a group of zeros
        +((c%4&lt;3)&gt;n%100)    #     (n%100 == 0 and c%4 != 3)
    )                       # Subtract 1 if we lead a group of four with 10
  - (n==c%4&lt;2)              #   (n==1 and c%4==1)
  + f(n/10,-~c)             # Recurse on next digit
                            # Else if n=0, return 13 if we are at the first
or 13*0**c                  # digit, else 0

We also use the exec&quot;...&quot;.decode('zip') to compress our code to save a few bytes.