Hi David,
Great questions!
Let's take them one by one:
1. Replacing a constructor: I'm assuming what you're trying to do is replace the future object (the dependency created in the code under test) with an object that's initialized with other parameters. At least that's what I get from your pseudo code.
To do this, you should either "new" your replacement dependency, or use Fake.Instance with the other parameters (just like a regular factory method). Then use Swap.NextInstance to replace the replacement dependency with the future one. Of course, you can replace any behavior on that replacement dependency with Isolate.WhenCalled.
2. Verifying parameters to a constructor: I'd try to stay away from this (partly because there's no direct API, but more on this later), by trying to assert on the dependency state instead. So, if for instance the parameters are exposed as properties, assert on them, or if your testMethod does something with them and returns them to the code under test, assert the impact.
It is usually a better idea to test the impact of parameters, rather than if they got passed. Constructors are even more susceptible because you may choose to change the code to use another constructor, and still get the same result. There's no need for the test to change for that. This is the thinking behind no API for constructors.
I'll be happy to answer more questions.
Gil