My workaround is to patch the Plugin::Instance.activate! method.
Locate the code:
Replace it with the code:
Discourse::Utils.execute_command('rm', '-rf', target)
begin
Discourse::Utils.execute_command('ln', '-s', public_data, target)
rescue
Discourse::Utils.execute_command('cp', '-r', public_data, target)
end