Nonblocking SoftSerial is throughoutly without problem on the Maple / Maple IDE:
You only have to use one or two of the four built-in hardware timers.
The timer is connected to an interrupt routine, which you do use for sending the bytes in the desired baud rate.
The baud rate could be configured up to 36.000.000 ;-)
here is an example for a SoftSerial.send(), with a non-blocking output ring buffer:
http://pastebin.com/pRajtwAj
The same way, you could connect an interrupt to some receive pin to start your data receiving timer to generate the baud rate and fill your recieve buffer - independantly from the main.loop.
But: you could use also one of the 3 USART's. Ask them in the loop, if they've got a char for you, if so, store it in your buffer (fastest with DMA.)
At both baud rates, you will have definitely very, very many Processor cycles to do other stuff - as long as you arn't waiting with Delay() or While(!Serial1.Available()) do wait...