WIP: experimental async decoding

it will continue decoding in background.
to stop decoder, you must exit application.
also removed some unneeded synchronizations to make it more responsive.