Could I use a copy of the database directory instead of using initdb?
You can do so - a given initdb will produce a datadir compatible with builds of the same postgres.

But.

If initdb fails, the rest of postgres probably will too. So you won't really be solving anything. You should instead bundle the MSVC redist in your installer.

BTW, if you install PostgreSQL bundled in an app, please use a non-default port, do NOT use the default port 5432. Thanks!