hosts file: does it pass the domain name? I'm always redirected to the main site configured on the host
Your reasoning about the hosts file is actually not how it works. The hosts file is only responsible for providing a mapping from the hostname (alpha.com) to an IP - it doesn't have any influence on which hostname the browser sends to the webserver for virtual hosting.

If you do actually end up on the new server, you have an error in your web server configuration so that virtual hosting is either not enabled or misconfigured. Depending on the version of Apache you're running, you might for example need to add a "NameVirtualHost *:80" line to the configuration. It could also be that you have a typo in the ServerName and/or ServerAlias lines. It is impossible to tell from your question, as you haven't provided the actual configuration.

If you instead end up on the old server, the problem is that your browser is not using the hosts file (i.e. it is not using the system default name resolver). An easy way to get around that is simply to use a different browser. You might also be running into caching if you have made a lot of changes and tests with the hosts file. A very easy manner of testing that is simply to reboot the Mac. You can also flush the cache, which you can find instructions on how to here on AskDifferent depending on your macOS version.