I did some run based on this:
```
from(1).repeat().take(5_000_000)
```
Trampoline: 11 MOps/sec
QueueDrain w/ Action: 7.2 MOps/sec
QueueDrain w/ Action and reduced object creation: 7.6 MOps/s

I would guess the internal LinkedBlockingQueue has significant overhead.