It's hard to say anything about your pricing model. If it works for you, there's probably no need to optimize. However, 500K users with a $20 IAP – I wonder if you could introduce subscriptions for something like $1-2 per month. Maybe make it cheaper per year, but more expensive on the long run. But this depends heavily on how often your app is used. If it's used daily, it provides daily value and this makes people appreciate it more. If you use it only occasionally, a one-time fee is alright. Just from my gut feeling: a single unlock-all $20 fee is quite high for an IAP and I wonder if there's a way to price it better.
> "What if Google stops sending traffic to my Google Play store page?"
Yeah, that is a very good question for all indie developers. My app is somewhat detached from Google's hand, because a) it used to be a webapp, b) there's also an iOS version, c) I could make it a progressive web app in no time. But still, it'd reduce convenience and discoverability. This is a complex question. On the one hand, I don't think many legitimate apps are kicked out of the Play Store for no reason. There are horror stories, but well, they are rare. Maybe you could find a way to make it more distributed. Offer an iOS app. Offer a web app. Or do make sure to keep Google happy at all times.
> "I spend some advertising dollar each day in Google Ads, with the hope able to keep our app ranking afloat."
It's similar with SEO. If SEO is the only strategy, you get dependend on it. So diversification is the key here. Paid apps + SEO + occasionally forum promotions + maybe a good website with good content for a loyal fan base (but it depends on what kind of app this is).
> "Do you have any suggestion, how I can have a better marketing strategy?"
Not really, depends on the kind of app. Read indiehackers.com for inspiration and the books I recommend. I don't do paid ads, because the CPC is way too high / the conversion rate too low.
> "Do you have suggestion which publishing platform I should use? Since I don't have a good writing skill, should I hire a freelancer to help me do so? How can I get an idea what to write about?"
Absolutely! I wrote probably over 200,000 words and invested a lot of time in improving my writing skills. Good content is easy to read. If your app is in English and English is not your native language, get someone to write for you or someone to correct your rough English. This is about brand perception and if you want to teach someone something, it helps if your written voice doesn't sound off. On a forum/comment site like HN, this is less important ;)
But again, just from my gut feeling: I wonder if there's a way for you to REDUCE the number of active users and turn free users into loyal paid users. This makes for more stable income and lets you focus on improving the app and stressing less about marketing.