After multiple requests for a non-blocking interrupt-driven receive function (and seeing a couple hack jobs where someone tried plugging my code into an ISR), I've released a new version of picoUART with optional support for PCINT triggered receive.
The timing is tuned for the PCINT latency assuming the interrupt happens half-way during a 2-cycle instruction (sbi/cbi, ld/st, push/pop, ...).
For now, only AVRs with PCMSK in the sbi/cbi space are supported. picoUART must have exclusive use of PCINT0.
It's written in the Arduino library structure, but doesn't use any of the Arduino API so it can easily be used with just avr-libc.