Interfacing with the Asynchronous Programming Model

I am thinking about using about using Ruby in conjunction with the APM.
I want to transition from a C# program written using the
BeginXXX/EndXXX paradigm to execute the asynchronous part in a ruby
script host.
I would need to be able to run many threads over the same script, to
have it return when waiting rather than hold onto the thread, and to
be able to resume on a different thread than it had been running
originally.
Note: I do not want to use the Iron Ruby thread, which maps to a .NET
thread, but to use the ability to suspend and later resume a
computation to execute many kinds of activities on a single thread, or
on a set of threads in the thread pool.
Is this going to be possible, given the limitations of Iron Ruby?
Is is bad idea for some other reason?