While you can't directly float a window with MVVM via a property, you can accomplish it another way without using Float(). When you first open a docking window, the DockSite.WindowDefaultLocationRequested event will fire. So setting IsOpen on your VM will effectively trigger that event. You could add a handler for that event that sets e.ShouldFloat = true and any other properties as appropriate. You could determine whether to set that e.ShouldFloat based on a property on your VM. The e.Window.DataContext should be your VM.
As far as location, it will float it centered over the dock site at this time. I wonder if we should add an e.FloatLocation property to the DockingWindowDefaultLocationEventArgs that would default to null, but allow you to specify a default location if e.ShouldFloat was set. Would that help?