For a small cluster, there is no problem running Historical and MiddleManager in the same instance, however I recommend separating them because Historical benefits from onheap and offheap memory to save and search for segments in memory. In addition, when performing a query, it uses 1vCPU per segment read. If an ingestion is occurring at the time, it would be losing resources to MiddleManager, as well as vice versa. Therefore, having resources dedicated to each type of node is a good policy for resource utilization and sizing.
In practice, I have never used Bottlerocket OS, but I know that it is a proposed replacement for AWS ECS-optimized Amazon Linux AMIs. What I will say from now on is pure speculation. Perhaps because of Bottlerocket OS's focus on ECS, the "I" family is not so much the focus of development, given the fact that ECS is normally used for servers, microservices, queues and the like where memory and CPU are the main focus. When we talk about the "I" family, we think of high disk IOPS, which usually leads us to databases, data lakes, data warehouses and delta lakes. Because of this focus, it is assumed that this tends to be something manually managed or even simple containers, and that is why AWS does not have an immediate focus on bringing the "I" family to Bottlerocket OS.