RE: Reports and Roll up field
For #1, since you can have multiple process instances per opportunity record now, it's probably better to look at the activestageid field on the corresponding process entity. For example, this fetch would give all active instances of the opportunitysales process.. but you'll probaly have to join it to the opportunity in the report (through the related opportunity field):
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
<entity name="opportunitysalesprocess">
<attribute name="businessprocessflowinstanceid" />
<attribute name="name" />
<attribute name="createdon" />
<attribute name="activestageid" />
<attribute name="opportunityid" />
<order attribute="name" descending="false" />
<link-entity name="processstage" from="processstageid" to="activestageid" alias="ag">
<attribute name="stagecategory" />
<filter type="and">
<condition attribute="stagecategory" operator="not-null" />
</filter>
</link-entity>
</entity>
</fetch>