Option 2 will get you the right costs at the logical server layer, however the consequence of bypassing the Physical Server and Hypervisor objects is that certain standard reports will not function as designed.
If we think about the design of the 3 objects installed by the CT Apps - Servers component, there's an expectation that costs flow to Physical Server first. From there, the standalone server costs go straight up to Servers, while the hypervisor costs are directed to the Hypervisor object. The catch is that you don't know the guest OSes hosted by the hypervisors yet, so you don't know which subtower costs go to which physical servers.
If you have a file that represents the relationship between the hypervisors and their guests, you should be able to use that to back the Physical Server object, and that will allow you to allocate the Compute costs from IT Resource Towers to Physical Server without commingling the subtower costs. From there, all hypervisor costs could be allocated to the Hypervisor object, backed with the same level of OS detail, and finally those costs could be directed up to the Servers object where standalone servers and virtual servers come back together again.
While this results in more granularity in Physical Server and Hypervisor than the names imply, it does seem to achieve the goal of getting the right Compute subtower costs to the right logical servers. Any gotchas?